Season the short ribs with salt and pepper, then dredge in flour until coated. Shake off the excess flour.
Heat the olive oil and butter in a large skillet or Dutch oven over medium-high heat. Cook the ribs until browned on each side, about 5 minutes per side. Remove from the skillet and set aside. Add the onion and garlic to the skillet; cook and stir until onion is tender, about 5 minutes. Return the ribs to the skillet and pour in the beer. Stir, scraping the bottom of the pan, until all of the browned bits have mixed in with the liquid. Pour in the beef stock, cover and simmer over low heat until very tender, about 2 hours.