Osso Buco alla Milanese

A classic Milanese osso buco — fork-tender veal shanks braised in wine, tomatoes and stock until deeply savory — served over a creamy saffron risotto. This stovetop main offers rich, comforting flavors and a bright gremolata to cut through the braise.

0.0(0 reviews)
Prep: 25m · Cook: 120m · Total145 mins
DifficultyMedium
Serves4
Osso Buco alla Milanese

Ingredient Spotlight

Veal shanks (with bone; about 1.6 kg / 3.5 lb total)

Cross-cut shanks from a young calf (classic for osso buco); they include a marrow-filled bone and lots of connective tissue that becomes rich and gelatinous when long-braised. Veal is common in Italian and French cooking and has a milder, more delicate flavor than beef. You’ll find them at a butcher, a well-stocked supermarket meat counter, or specialty meat markets; a good substitute is beef shank or lamb shank, which give similar braising results though a heartier flavor.

Ingredient Spotlight

pinch saffron

Saffron is the dried stigmas of the Crocus sativus flower, prized in Mediterranean, Middle Eastern, and South Asian cuisines for its subtle floral‑honey aroma and golden color. It’s one of the most expensive spices by weight and is used sparingly to perfume rice, risottos, and stews. Buy it from reputable spice shops, specialty grocery stores, or online; if you need a budget substitute for color only, use a pinch of turmeric or safflower, but note that neither replicates saffron’s unique aroma and flavor.

Ingredient Spotlight

Gremolata: fresh parsley, lemon zest and a touch of garlic (finely chopped)

Gremolata is a classic Italian chopped herb condiment (originating in Milan) typically served with braised meats like osso buco to add a bright, citrusy, garlicky finish. It tastes fresh and zesty—parsley’s green herbiness plus lemon oil and sharp raw garlic. It’s usually made fresh at home with common ingredients, but if you need an alternative, a quick chimichurri or a simple mix of chopped parsley, lemon zest, and minced garlic will provide a very similar effect.

Jake

Jake's note

"This dish shines for leisurely weekend dinners or small dinner parties — the braise can be made a day ahead to deepen the flavor. Home cooks will love the contrast between the luxuriously soft veal and the aromatic saffron risotto."

Osso Buco alla Milanese

Osso Buco alla Milanese is an exercise in patience that rewards you with a braise whose flavor seems to accumulate layer by layer: caramelized browning on the shanks gives savory depth, the wine and tomatoes bring bright acidity, and long, gentle cooking turns connective tissue into silk. The marrow-packed cross-cut bone is the dish’s showpiece — it enriches the sauce and offers a gelatinous, buttery note that pairs beautifully with a saffron risotto. Texturally, you want a contrast between the unctuous braised meat and the slightly toothsome grains of Arborio; the gremolata is essential for cutting the richness with lemon and parsley snap.

This version leans on balance rather than fuss: equal parts white wine, stock and crushed tomatoes keep the braise lively without becoming overly tomato-heavy, and finishing by reducing the braising liquid to a glaze concentrates flavor while preserving the shank’s tenderness. It’s ideal for a weekend dinner or a small dinner party where you can braise low and slow, then bring the pot to the table for dramatic plating. Make the gremolata just before serving so its brightness is fresh, and don’t rush the risotto — the saffron needs time to perfume the rice and bind the plate together.

Plan your timing

4:31 pm4:55 pmSeason, flour and brown the shanks
4:55 pm5:19 pmSauté the aromatics
5:19 pm5:43 pmDeglaze and assemble the braise
5:43 pm6:07 pmBraise until tender
6:07 pm6:31 pmMake the saffron risotto
6:31 pm6:55 pmFinish and serve with gremolata
Advertisement

Ingredients

Yield
4

Instructions

Season, flour and brown the shanks

Pat the veal shanks dry and season all over with salt and pepper. Lightly dust each shank with flour, shaking off excess. Heat the olive oil and butter in a large heavy pot or Dutch oven over medium-high heat and brown the shanks on all sides until richly caramelized, working in batches to avoid crowding; transfer browned shanks to a plate.

For this step

  • 4 piecesVeal shanks (with bone; about 1.6 kg / 3.5 lb total)
  • 1.5 tsp (total)Kosher salt and freshly ground black pepper
  • 0.5 cupAll-purpose flour (for dusting)
  • 5 tbsp (combined)Olive oil and unsalted butter (for browning)
Season, flour and brown the shanks

Sauté the aromatics

Reduce heat to medium and add the diced mirepoix to the pot, stirring to pick up the browned bits from the bottom. Cook until the vegetables are softened and beginning to color, 6–8 minutes, then add the chopped garlic and cook 30–60 seconds more until fragrant.

For this step

  • 1 cup dicedMirepoix (1 large onion, 1 carrot, 1 celery stalk), finely diced
  • 2 clovesGarlic, finely chopped
Sauté the aromatics

Deglaze and assemble the braise

Pour in the white wine to deglaze, scraping up any fond, and reduce by half. Stir in the beef stock and crushed tomatoes, bring the liquid to a gentle simmer, then nestle the browned shanks back into the pot so they are partially submerged. Cover the pot, reduce heat to low and maintain a gentle simmer.

For this step

  • 4 cups (combined)Braising liquids: dry white wine, beef stock and crushed tomatoes (1 cup wine + 2 cups stock + 1 cup tomatoes)
Deglaze and assemble the braise

Braise until tender

Cook gently for about 1½ to 2 hours, or until the meat is fall-apart tender and pulls easily from the bone. Occasionally spoon pan juices over the shanks; toward the end, remove the shanks and increase heat to reduce the sauce slightly if you prefer a thicker glaze.
Braise until tender

Make the saffron risotto

While the braise finishes, warm 3 cups of stock with the saffron threads in a saucepan. In a separate skillet, melt 1 tbsp butter, add the Arborio rice and toast for 1–2 minutes. Ladle warm saffron-infused stock a ladleful at a time, stirring frequently and allowing each addition to be absorbed before adding more; cook until creamy and al dente, about 18–20 minutes. Stir in the remaining butter and grated Parmesan, season to taste.

For this step

  • 1 cup rice (plus 3 cups hot stock, pinch saffron, 1 tbsp butter, 1/3 cup Parmesan)Saffron risotto: Arborio rice, pinch saffron, and hot stock; finish with butter & grated Parmesan
Make the saffron risotto

Finish and serve with gremolata

Reheat the shanks briefly in the reduced sauce if needed, then spoon saffron risotto onto plates or a serving platter, top with a veal shank and spoon sauce over. Sprinkle each portion with the fresh gremolata for brightness and serve immediately.

For this step

  • 0.25 cup chopped parsleyGremolata: fresh parsley, lemon zest and a touch of garlic (finely chopped)
Finish and serve with gremolata

Tips from the kitchen

Brown in Batches

Avoid crowding the pot so the shanks caramelize properly; wet meat steams instead of browns, losing that essential fond for flavor.

Save the Fond

When you sauté the mirepoix, scrape the browned bits from the bottom of the pan with the wine — that fond is the backbone of the braising liquid.

Maintain a Simmer

Keep the braise at a gentle simmer rather than a rolling boil to break down collagen slowly and prevent toughening the exterior.

Infuse the Stock

Bloom saffron threads in a ladle of hot stock for 5–10 minutes before adding; this extracts maximum aroma and color for the risotto.

Finish with Reduction

For a glossy, clingy sauce, remove the shanks near the end and boil the braising liquid until it thickens slightly, then return the meat to coat.

Variations & substitutions

Beef Shank Substitute

If veal is unavailable, use beef shanks; increase braising time to 2½–3 hours until the meat is equally tender and flakes from the bone.

Tomato-Light Version

Reduce crushed tomatoes to ½ cup and add a splash of balsamic or a spoonful of tomato paste for color without overt sweetness, keeping the dish closer to classic Milanese flavors.

Slow Cooker Method

Brown the shanks on the stove, then transfer the aromatics and liquids to a slow cooker and cook on low for 6–8 hours; finish the sauce by reducing it on the stovetop.

Gluten-Free Option

Skip the flour dusting or use rice flour or cornstarch for a light coating; dredging is optional but helps thicken the final sauce.

Storage & make-ahead

Store cooled osso buco and sauce in an airtight container in the refrigerator for up to 3 days; the flavors often deepen overnight. You can freeze the braised meat and sauce (without risotto) for up to 3 months — thaw overnight in the fridge before reheating gently in a low oven or a covered skillet. Reheat risotto by loosening with hot stock or butter over low heat, stirring until creamy again.

What to serve with it

Spoon a generous bed of saffron risotto on warm plates, nestle the shank on top, and spoon glossy sauce over the meat; serve the gremolata at the last minute for brightness. For sides, roasted broccolini or lemony sautéed spinach complement the dish’s richness; pair with a medium-bodied Italian red like Chianti or a mineral white such as Verdicchio to match the braise’s acid and the risotto’s saffron notes.

Frequently asked questions

How do I know when the shanks are done?

They’re ready when the meat pulls away from the bone easily and a fork meets almost no resistance; internal temperature is less useful than the tactile test for braises.

Can I make the braise a day ahead?

Yes — the flavors improve after resting; gently reheat the shanks in their sauce over low heat and finish by reducing the sauce briefly before serving.

What should I do with the bone marrow?

Scoop it out and spread it on toasted bread as an amuse-bouche, or stir it into the risotto for an extra layer of richness and umami.

My sauce is too thin — how do I thicken it?

Remove the shanks and simmer the sauce over medium-high heat until it reduces to a glossy, spoon-coating consistency; avoid adding flour at the end which can taste raw.

Can I use a red wine instead of white?

Yes — red wine will deepen the braise and work well with beef shanks, but choose a lighter red (like Chianti) to avoid overpowering the delicate veal flavor.

Jake

About the author

Jake

Hello, I'm Jake. I started this recipe site with the idea that I hated recipe websites that overwhelm you with long stories and ads just to see plain content that's not helpful. My goal is to provide you with quality recipes, simple ideas and a fun cooking experience. There's lots of fun things to cook, and I think as you browse the site you'll find that TopShelf.Recipes is the place for quality recipes on the web.

See all recipes by Jake

Ratings & Reviews

Did you make this recipe?

Be the first to share your experience.

Ingredients

4 servings
Step 1: Season, flour and brown the shanks
  • Veal shanks (with bone; about 1.6 kg / 3.5 lb total)4 pieces
  • Kosher salt and freshly ground black pepper1.5 tsp (total)
  • All-purpose flour (for dusting)0.5 cup
  • Olive oil and unsalted butter (for browning)5 tbsp (combined)
Step 2: Sauté the aromatics
  • Mirepoix (1 large onion, 1 carrot, 1 celery stalk), finely diced1 cup diced
  • Garlic, finely chopped2 cloves
Step 3: Deglaze and assemble the braise
  • Braising liquids: dry white wine, beef stock and crushed tomatoes (1 cup wine + 2 cups stock + 1 cup tomatoes)4 cups (combined)
Step 5: Make the saffron risotto
  • Saffron risotto: Arborio rice, pinch saffron, and hot stock; finish with butter & grated Parmesan1 cup rice (plus 3 cups hot stock, pinch saffron, 1 tbsp butter, 1/3 cup Parmesan)
Step 6: Finish and serve with gremolata
  • Gremolata: fresh parsley, lemon zest and a touch of garlic (finely chopped)0.25 cup chopped parsley

Nutrition Facts

Per serving: 1 veal shank with ~3/4 cup risotto (720g)

Calories1079
Total Fat45.8g
Saturated Fat31.2g
Trans Fat0.6g
Polyunsaturated Fat3g
Monounsaturated Fat7.2g
Total Carbohydrates74.4g
Dietary Fiber0.3g
Total Sugars43.6g
Protein94.8g

Nutrition values are estimated from USDA ingredient data and may vary based on preparation, brands, and portion sizes. Values are provided for informational purposes only.

Sous-chef
Osso Buco alla Milanese

Ask me anything about this recipe — substitutions, scaling, techniques, timing.

Powered by AI · Answers may not always be perfect