Skip to Recipe

There’s something deeply comforting about a pot of veal shanks slowly braising away, filling the whole kitchen with the smell of wine, herbs, and soffritto. This classic osso buco recipe pairs meltingly tender shanks with a zippy citrus-herb gremolata and a bowl of creamy saffron risotto underneath, and yes, it’s every bit as impressive as it sounds but far more approachable than you’d think.

What Is Osso Buco?

Osso buco, which translates to “bone with a hole” in Italian, is a Milanese specialty of cross-cut veal shanks braised low and slow until the meat is tender enough to fall away from the bone. The dish traditionally simmers in a mixture of white wine, broth, and vegetables, and it’s finished with gremolata, a bright mixture of lemon zest, garlic, and parsley that cuts through the richness of the braise.

In Milan, osso buco alla Milanese is almost always served atop risotto alla Milanese, a creamy saffron-scented rice dish that soaks up all the savory juices from the meat. Together, the two form one of Italy’s most celebrated cold-weather pairings, the kind of meal that feels like a special occasion even on a random Tuesday night.

Tips for Cooking and Prepping

#1: Tie the shanks with kitchen twine

Wrapping a piece of butcher’s twine around the circumference of each shank keeps the meat attached to the bone during the long braise, so you get neat, presentable pieces instead of shreds falling apart in the pot.

#2: Dredge and sear for real color

Pat the shanks completely dry, dredge them lightly in flour, and sear in batches without crowding the pan. A deep golden crust builds the fond that gives the braising liquid its rich, savory backbone.

#3: Don’t skip the soffritto

The classic combination of diced onion, carrot, and celery cooked slowly in the fond isn’t just aromatic filler, it’s the flavor foundation of the entire sauce, so give it real time to soften and turn golden before adding liquid.

#4: Braise low and slow, covered

Osso buco needs gentle, steady heat around 300°F for 2 to 3 hours; boiling or rushing the braise will toughen the meat instead of breaking down the connective tissue that makes it so tender.

#5: Bloom the saffron before adding it to the risotto

Steep the saffron threads in a few tablespoons of warm broth for 10 minutes before stirring them in. This coaxes out maximum color and aroma so the risotto turns a deep golden hue instead of a pale, muddy yellow.

#6: Add broth gradually and keep stirring

Risotto’s creaminess comes from slowly releasing starch, which only happens if you add warm broth a ladleful at a time and stir frequently, letting each addition absorb before adding more.

Recipe Variations and Substitutes

While veal shanks are traditional, beef shanks make an excellent, more budget-friendly substitute and braise beautifully using the same method, just expect a slightly deeper, beefier flavor. You can also swap the white wine for a dry red if you prefer a bolder, heartier sauce, and some cooks add a spoonful of tomato paste or crushed tomatoes for a Roman-style twist called osso buco in bianco versus in umido. For the risotto, arborio rice is classic, but carnaroli works wonderfully too and holds its shape a touch better.

Serving Suggestions

Serve the braised shanks directly on top of a generous bed of saffron risotto, spooning extra braising liquid over both, then finish with a bright sprinkle of gremolata right before serving. A simple arugula salad with lemon vinaigrant or some crusty bread for mopping up the sauce rounds out the meal nicely, and a glass of the same dry white or light red wine used in the braise makes a lovely pairing.

Storing, Make-Ahead, and Freezing Tips

Osso buco actually tastes even better the next day, so feel free to braise it a day or two ahead and gently reheat covered on the stovetop or in a low oven. It also freezes beautifully for up to 3 months in its braising liquid; just thaw overnight in the fridge before reheating. Risotto, however, is best made fresh, since it loses its creamy texture upon reheating, though leftovers can be reheated with a splash of broth or repurposed into crispy risotto cakes.

FAQs

Can I make osso buco in a slow cooker or Instant Pot?

Yes, sear the shanks and build the sauce on the stovetop first, then transfer everything to a slow cooker on low for 6 to 8 hours, or pressure cook for about 45 minutes with a natural release for similarly tender results.

What’s the difference between gremolata and pesto?

Gremolata is a simple raw mixture of lemon zest, garlic, and parsley meant to add brightness to rich braises, while pesto typically includes basil, nuts, cheese, and oil and is more of a sauce or spread on its own.

Do I have to use saffron in the risotto?

Saffron is what gives Milanese risotto its signature golden color and floral aroma, but if it’s unavailable, you can leave it out for a plain parmesan risotto that still pairs nicely with the osso buco.

Why is my osso buco tough instead of tender?

Tough shanks usually mean the braise was cooked too hot or too quickly; osso buco needs low, steady heat for several hours to properly break down the connective tissue into gelatin.

Can I use boneless veal or beef instead of shanks?

The bone and marrow are essential to authentic osso buco flavor and texture, so while boneless cuts can be braised similarly, you’ll lose the rich marrow that traditionally gets scooped out and eaten as a delicacy.

Classic Braised Osso Buco with Gremolata and Saffron Risotto Recipe

Prep time: 30 min | Cook time: 180 min | Total time: 210 min | Servings: 4

Ingredients

For the Osso Buco

  • 4 veal shanks (about 1.5 inches thick), tied with kitchen twine
  • Salt and freshly ground black pepper
  • 1/2 cup all-purpose flour, for dredging
  • 4 tablespoons olive oil, divided
  • 2 tablespoons unsalted butter
  • 1 medium onion, finely diced
  • 1 carrot, finely diced
  • 1 celery stalk, finely diced
  • 3 cloves garlic, minced
  • 1 cup dry white wine
  • 1 (14 oz) can crushed tomatoes
  • 2 cups beef or veal stock
  • 2 bay leaves
  • 2 sprigs fresh thyme
  • 1 strip orange peel (optional)

For the Gremolata

  • 1/4 cup finely chopped fresh parsley
  • Zest of 1 lemon
  • 1 small clove garlic, minced

For the Saffron Risotto

  • 5 cups chicken or vegetable stock, warmed
  • Pinch of saffron threads (about 1/4 teaspoon)
  • 2 tablespoons unsalted butter, divided
  • 1 tablespoon olive oil
  • 1/2 small onion, finely minced
  • 1 1/2 cups arborio rice
  • 1/2 cup dry white wine
  • 1/2 cup freshly grated parmesan cheese
  • Salt, to taste

Instructions

  1. Season the veal shanks generously with salt and pepper, then dredge each one lightly in flour, shaking off the excess.
  2. Heat 2 tablespoons olive oil in a large Dutch oven over medium-high heat. Sear the shanks in batches until deeply golden brown on both sides, about 3-4 minutes per side, then set aside.
  3. Reduce heat to medium and add the remaining olive oil and butter. Add the onion, carrot, and celery, and cook, stirring occasionally, until softened and golden, about 8 minutes. Add garlic and cook 1 minute more.
  4. Pour in the white wine, scraping up any browned bits from the bottom of the pot, and let it simmer for 2-3 minutes to cook off the alcohol.
  5. Stir in the crushed tomatoes, stock, bay leaves, thyme, and orange peel if using. Return the shanks to the pot, nestling them into the liquid so they’re mostly submerged.
  6. Bring to a gentle simmer, then cover and transfer to a 300°F oven. Braise for 2.5 to 3 hours, until the meat is fork-tender and nearly falling off the bone.
  7. While the shanks braise, prepare the gremolata by combining the chopped parsley, lemon zest, and minced garlic in a small bowl. Set aside until ready to serve.
  8. About 30 minutes before the osso buco is finished, start the risotto. Steep the saffron threads in 1/4 cup of the warm stock for 10 minutes.
  9. In a wide, heavy-bottomed pot, heat 1 tablespoon butter and the olive oil over medium heat. Add the onion and cook until soft and translucent, about 4 minutes.
  10. Add the rice and stir to coat in the fat, toasting for 1-2 minutes until the edges look slightly translucent.
  11. Pour in the white wine and stir until fully absorbed.
  12. Add the saffron-infused stock, then continue adding the remaining warm stock a ladleful at a time, stirring frequently and allowing each addition to absorb before adding more, about 18-20 minutes total, until the rice is creamy and just tender.
  13. Remove risotto from heat and stir in the remaining butter and parmesan cheese. Season with salt to taste.
  14. Remove the shanks from the braising liquid and discard the bay leaves and thyme sprigs. If desired, simmer the braising liquid uncovered for a few minutes to thicken slightly.
  15. Spoon the saffron risotto into shallow bowls, top each with a braised veal shank, and spoon extra braising liquid over the top. Finish with a generous sprinkle of gremolata and serve immediately.

For the best flavor, braise the osso buco a day ahead and reheat gently before serving, but always make the risotto fresh right before you plan to eat.


Leave a Reply