Skip to content
Zaffaron

Osso Buco (Osso Buco alla Milanese) — Milanese Braised Veal Shanks

Osso buco alla Milanese is a Lombard braise of cross-cut veal shanks cooked slowly with onion, wine, and stock until the marrow-rich bones perfume the sauce. It is traditionally finished with bright gremolata and served with risotto alla Milanese.

By Zaffaron Kitchen· Published June 20, 2026 Verified Recipe
Nut-Free
Contains: dairy, gluten
145 min total Prep 25m · Cook 120m 4 servings 565 cal
↓ Jump to Recipe
Osso Buco — Milanese Braised Veal Shanks - authentic italian recipe

Printable Recipe Card

Servings: 4 · Total: 145 min · Difficulty: medium

Ingredients (quick list)

  • 4 veal shanks (cross-cut, about 4 cm thick and 340 g each)
  • 8 g fine sea salt
  • 1 tsp black pepper (freshly ground)
  • 40 g all-purpose flour
  • 30 g unsalted butter
  • 30 ml extra-virgin olive oil
  • 1 yellow onion (about 180 g, finely chopped)
  • 1 carrot (about 90 g, finely chopped)
  • 1 stalk celery (about 60 g, finely chopped)
  • 250 ml dry white wine
  • 500 ml veal stock (unsalted chicken stock may also be used)
  • 1 leaf bay leaf

+ 4 more in the full ingredients section below.

Steps (summary)

  1. Pat the veal shanks completely dry with paper towels, then tie each one around the middle with kitchen twine so the meat holds…
  2. Heat a heavy Dutch oven over medium-high heat and add the butter and olive oil. When the butter foams and the fat is hot, brown…
  3. Transfer the browned shanks to a plate and reduce the heat to medium. Add the onion, carrot, and celery to the same pot and coo…
  4. Pour in the white wine and bring it to a lively simmer, scraping up the browned bits from the base of the pot. Cook for 5 minut…
  5. Return the veal shanks to the pot in a single layer and add the stock, bay leaf, and thyme. The liquid should come about halfwa…
  6. Cover the pot, reduce the heat to low, and simmer very gently for 90 to 110 minutes. Turn the shanks every 30 minutes and keep…

+ 2 more steps in the full instructions section below.

Cultural Background

A signature dish of Milan and Lombardy, osso buco celebrates cucina regionale through economical bone-in cuts transformed by patient braising. Its classic partner, saffron risotto, makes it a beloved Sunday and winter celebration meal.

savoryrichbrightlightly sweet from soffrittotender meatsilky saucesoft marrowslow-braised vealwhite winelemon-parsley gremolata🌶 mild

Equipment

heavy Dutch oven with lidkitchen twinetongschef's knifecutting boardfine gratermeasuring jug

💡 Tips

  • Choose veal shanks cut from the hind shank when possible, because they have a generous marrow bone and enough connective tissue to make a naturally silky sauce.
  • Keep the braise below a boil; a bare simmer gives the cleanest flavor and the most tender texture.
  • Add the gremolata only at the end so the parsley stays fresh, the lemon remains fragrant, and the garlic does not turn harsh.

⚠️ Common Mistakes

  • Boiling the braise aggressively

    ✅ Fix: Lower the heat until the liquid barely trembles, because gentle cooking keeps the veal tender and the sauce clear.

  • Using too much flour on the shanks

    ✅ Fix: Dredge lightly and shake well, since excess flour can make the sauce pasty rather than glossy.

  • Adding gremolata early

    ✅ Fix: Mix and add it just before serving so the lemon zest, parsley, and garlic stay vivid.

🧊 How to Store

Cool leftovers within 2 hours, then refrigerate the shanks and sauce together in an airtight container for up to 3 days. Reheat gently in a covered pan with 30 ml stock until hot, and add fresh gremolata only after reheating.

📅 Make Ahead

Braise the shanks 1 day ahead and refrigerate them in their sauce. Reheat gently, reduce the sauce as needed, and prepare the gremolata fresh just before serving.

🍽️ Pairs Well With

  • Risotto alla Milanese
  • soft polenta
  • mashed potatoes
  • sautéed spinach
  • crusty bread.

Regional Variations

  • The most restrained Milanese versions are cooked in bianco, without tomato, emphasizing wine, stock, onion, and gremolata.
  • Some modern Lombard and restaurant versions add a small amount of tomato paste or chopped tomato for color and sweetness.
  • Outside Lombardy, beef shank or pork shank may replace veal, producing a heavier but satisfying braise.
Sunday lunch Christmas Feast of Saint Ambrose family gathering
#classic#Milanese#braised#family-style

Ingredients

  • 4veal shanks (cross-cut, about 4 cm thick and 340 g each)
  • 8 gfine sea salt
  • 1 tspblack pepper (freshly ground)
  • 40 gall-purpose flour
  • 30 gunsalted butter
  • 30 mlextra-virgin olive oil
  • 1yellow onion (about 180 g, finely chopped)
  • 1carrot (about 90 g, finely chopped)
  • 1 stalkcelery (about 60 g, finely chopped)
  • 250 mldry white wine
  • 500 mlveal stock (unsalted chicken stock may also be used)
  • 1 leafbay leaf
  • 3 sprigfresh thyme
  • 2 tsplemon zest (finely grated)
  • 12 sprigflat-leaf parsley (leaves finely chopped)
  • 1 clovegarlic (very finely minced)

🔄 Substitutions

  • veal shanksbeef shanks
  • dry white wine250 ml unsalted chicken stock plus 15 ml white wine vinegar
  • all-purpose flourrice flour

Instructions

  1. 1

    Pat the veal shanks completely dry with paper towels, then tie each one around the middle with kitchen twine so the meat holds its shape during the long braise. Season the shanks on all sides with the measured salt and pepper, then dredge them lightly in the flour and shake off every visible excess.

  2. 2

    Heat a heavy Dutch oven over medium-high heat and add the butter and olive oil. When the butter foams and the fat is hot, brown the veal shanks for about 4 minutes per side until deeply golden, working in batches if needed so the pan is not crowded.

  3. 3

    Transfer the browned shanks to a plate and reduce the heat to medium. Add the onion, carrot, and celery to the same pot and cook for 8 minutes, scraping the bottom often, until the vegetables are soft and lightly golden but not browned hard.

  4. 4

    Pour in the white wine and bring it to a lively simmer, scraping up the browned bits from the base of the pot. Cook for 5 minutes, or until the wine is reduced by about half and the raw alcohol aroma has softened.

  5. 5

    Return the veal shanks to the pot in a single layer and add the stock, bay leaf, and thyme. The liquid should come about halfway up the shanks, so use a snug pot and avoid fully submerging the meat.

  6. 6

    Cover the pot, reduce the heat to low, and simmer very gently for 90 to 110 minutes. Turn the shanks every 30 minutes and keep the braise at a quiet tremble, because boiling will toughen the veal and cloud the sauce.

  7. 7

    When the meat is fork-tender but still attached to the bone, transfer the shanks to a warm platter and remove the twine. Simmer the sauce uncovered for 8 to 12 minutes if it needs thickening, then discard the bay leaf and thyme stems.

  8. 8

    Mix the lemon zest, parsley, and garlic together just before serving to make the gremolata. Spoon the sauce over the veal, scatter the gremolata on top, and serve immediately while the marrow is warm and the sauce is glossy.

🪪 Recipe Passport

Origin: Italian Cuisine
Researched by: Zaffaron Kitchen
Published: June 20, 2026

Cultural Background

A signature dish of Milan and Lombardy, osso buco celebrates cucina regionale through economical bone-in cuts transformed by patient braising. Its classic partner, saffron risotto, makes it a beloved Sunday and winter celebration meal.

Regional Variations

The most restrained Milanese versions are cooked in bianco, without tomato, emphasizing wine, stock, onion, and gremolata.
Some modern Lombard and restaurant versions add a small amount of tomato paste or chopped tomato for color and sweetness.
Outside Lombardy, beef shank or pork shank may replace veal, producing a heavier but satisfying braise.

Researched from multiple sources and validated by the Zaffaron editorial team. Every recipe is tested for accuracy, measurements, and cultural authenticity.

📚 Sources & Cultural References

  • Marcella Hazan — Essentials of Classic Italian Cooking — (1992)
  • Accademia Italiana della Cucina — La Cucina: The Regional Cooking of Italy — (2009)

Sources cited by the Zaffaron editorial team during recipe research. Cultural and culinary references supporting authenticity claims.

Share:

Nutrition per serving

565
Calories
48g
Protein
32g
Fat
18g
Carbs
3g
Fiber
820mg
Sodium

Pairs well with

If you enjoyed this recipe, here are a few related Zaffaron recipes to try next.

Does your family make this differently?

Every family has their own version. Maybe your grandmother adds a secret ingredient, or your aunt has a completely different technique. Preserve your family's version — with their name on it, forever.

You Might Also Like

Reviews

Rated 0.0 out of 5 stars
0 reviews

Cooked this recipe?

Tap the stars to rate it — that's all it takes. A few words are welcome but optional.

Please sign in to rate this recipe.
Rated 0.0 out of 5 stars

No ratings yet. Cooked this one? Be the first to rate it — it takes one tap.