Classic Osso Buco Milanese

Featured in: Hearty Soups & Stews

Osso Buco Milanese features veal shanks braised gently in a savory blend of diced tomatoes, aromatic vegetables, and white wine until tender. This dish is finished with a fresh gremolata made from parsley, garlic, and lemon zest, adding brightness to the rich sauce. Ideal for a satisfying, elegant meal served alongside risotto or creamy potatoes.

The slow cooking melds flavors deeply while maintaining moist, fork-tender meat. A gluten-free flour option suits dietary preferences, and beef shanks can be substituted as needed. This Italian classic balances hearty textures with vibrant citrus notes for an indulgent dining experience.

Updated on Sat, 27 Dec 2025 11:37:00 GMT
Tender Osso Buco served with vibrant gremolata, imagine the savory aroma and rich flavors. Save to Pinterest
Tender Osso Buco served with vibrant gremolata, imagine the savory aroma and rich flavors. | frostkettle.com

The first time I truly understood what braising could do was watching my nonna lower veal shanks into a pot of wine and tomatoes, the kitchen filling with this deep, savory perfume that seemed to promise something extraordinary. Osso buco taught me patience—how hours of gentle heat transform something as tough as bone-in shanks into meat so tender it surrenders to a spoon. There's something almost meditative about a dish that demands you slow down, that refuses to be rushed, and this one has been that anchor for me ever since.

I made this for my partner one winter when we were both exhausted, and I remember how the braising pot became this little universe of its own—we'd peek under the lid every half hour, watching the transformation, and by the time we sat down to eat, the whole evening had shifted. That's when I realized osso buco isn't really about impressing anyone; it's about giving yourself and the people you cook for something that feels like it took forever but tastes like love.

Ingredients

  • Veal shanks (4 pieces, about 350 g each, cross-cut, bone-in): The bone gives you collagen that melts into the sauce, making it silky and rich—ask your butcher to cut them for you if they haven't already.
  • Salt and freshly ground black pepper: Don't skip the generous seasoning at the start; this is where flavor begins.
  • All-purpose flour (1/3 cup / 40 g): A light dredge helps the shanks brown evenly and builds the base of your sauce.
  • Olive oil (2 tbsp) and unsalted butter (2 tbsp): The combination gives you flavor from both and helps everything brown without sticking.
  • Onion, carrots, celery, and garlic: This holy trinity plus garlic is your flavor foundation—don't rush the sautéing.
  • Dry white wine (1 cup / 240 ml): Something you'd actually drink; the wine deglazes the pot and adds acidity that balances the richness.
  • Diced tomatoes (400 g can with juice): Canned is perfect here because you need the juice as much as the tomatoes.
  • Beef or veal stock (1 1/2 cups / 360 ml): Use stock, not water—every bit of flavor counts in a braise.
  • Tomato paste (2 tbsp): A small amount concentrated to deepen the sauce without making it taste thin.
  • Bay leaves (2) and dried thyme (1 tsp): These quiet herbs prevent the sauce from tasting one-dimensional.
  • Lemon zest (from 1 lemon, reserved for both cooking and gremolata): Half goes into the braise, half into the finish—brightness in two acts.
  • Fresh flat-leaf parsley (2 tbsp, finely chopped), garlic (1 clove, minced), and lemon zest: Gremolata is where the magic happens—this sharp, herbal topping wakes everything up.

Instructions

Dry and season your shanks:
Pat the veal very dry with paper towels—any moisture on the surface keeps them from browning properly. Season generously with salt and pepper, then dredge lightly in flour, shaking off the excess so you get a thin, even coating.
Get a golden crust:
Heat olive oil and butter in a large Dutch oven over medium-high heat until the butter foams and the oil shimmers. Brown the shanks on all sides, about 3–4 minutes per side, letting them develop that rich, mahogany color—this is flavor, not burning.
Build your flavor base:
Set the shanks aside and add your chopped onion, carrots, celery, and minced garlic to the same pot. Sauté for about 6 minutes until everything softens and turns golden at the edges; you want to hear it sizzle and smell it sweetening.
Add tomato paste and deglaze:
Stir in the tomato paste and cook for 1 minute to deepen its color slightly, then pour in the white wine, scraping the bottom of the pot with a wooden spoon to loosen all those browned bits. That's concentrated flavor you don't want to leave behind.
Build the braising liquid:
Add the diced tomatoes with their juice, stock, bay leaves, thyme, and half of your lemon zest. Stir everything together until well combined and the liquid comes up around the vegetables.
Return the veal and bring to a simmer:
Nestle the browned shanks back into the pot in a single layer, spooning sauce over the top so they're mostly submerged. Bring everything to a gentle simmer on the stovetop—you should see lazy bubbles breaking the surface, not a rolling boil.
Braise low and slow:
Cover the pot and transfer it to a preheated oven at 160°C/325°F for about 2 hours, or until the veal is fork-tender and the meat has begun to pull away slightly from the bone. Resist the urge to check constantly; let the oven do its work.
Make your gremolata while the veal rests:
Finely chop fresh flat-leaf parsley, mince a garlic clove, and zest the remaining lemon. Mix them together in a small bowl—this bright, assertive mixture is your final flourish.
Finish and serve:
Remove the cooked shanks carefully to a serving platter. If you'd like a thicker sauce, skim off any fat from the surface and simmer the sauce over medium heat for a few minutes until it reduces and concentrates slightly. Spoon the sauce over the shanks and shower everything with gremolata just before serving.
Save to Pinterest
| frostkettle.com

There's a moment about an hour into braising when you walk past the kitchen and smell the transformation happening—that's when you know it's going to be good. I've served this to people who claimed they didn't like veal, and every time they've pushed their plate back empty, asking for the recipe.

Choosing the Right Veal Shanks

Your butcher is your friend here—ask for cross-cut shanks that are about 350 grams each with the bone in the center. The bone and marrow are essential to the braising liquid, creating that silky body you can't fake. If veal isn't available or feels like too much, beef shanks work beautifully with an extra 15–20 minutes in the oven, though the flavor will be deeper and less delicate.

The Wine and Stock Matter

Use a white wine you'd actually drink—something light and dry that won't add strange flavors. The stock should be full-bodied enough to stand up to the tomatoes and herbs; if your stock tastes like water, the whole dish will feel thin. This isn't the moment to cut corners on ingredients, because they're doing the real work here while the oven does its magic.

Serving Suggestions and Storage

Osso buco is traditionally served with Risotto alla Milanese, where the saffron-scented rice soaks up the sauce in the most elegant way possible. Creamy mashed potatoes or soft polenta work just as beautifully if risotto feels like too much for your evening. This dish actually improves a day or two in the refrigerator, so don't hesitate to make it ahead and reheat it gently—sometimes the best meals are the ones that give you time to breathe.

  • Risotto alla Milanese is the classic pairing, but any blank canvas that can soak up sauce works wonderfully.
  • Store in an airtight container in the refrigerator for up to 3 days, or freeze for up to 2 months.
  • Reheat gently on the stovetop with a splash of stock or water to restore the sauce's silky texture.
Slow-braised Osso Buco with meltingly soft veal, a classic Italian main course, ready to serve. Save to Pinterest
Slow-braised Osso Buco with meltingly soft veal, a classic Italian main course, ready to serve. | frostkettle.com

This is the kind of dish that feels like a small rebellion against rushing, an invitation to slow down and let time do something you can't force. When that tender veal meets that gremolata and sauce, you'll understand why this Milanese classic has survived centuries.

Recipe Questions & Answers

What cut of meat is used for Osso Buco?

Veal shanks, cross-cut with bone-in, are traditionally used for their tenderness and gelatinous qualities after slow braising.

How long should the veal be braised?

About 2 hours in a low oven at 160°C/325°F until the meat is fork-tender and infused with the sauce flavors.

What is gremolata and how is it prepared?

Gremolata is a fresh herb condiment combining chopped parsley, minced garlic, and lemon zest to add a bright contrast to the rich dish.

Can I make a gluten-free version?

Yes, substitute all-purpose flour for gluten-free flour when dredging the shanks, keeping all other ingredients unchanged.

What sides pair well with this dish?

Traditional companions include saffron risotto (Risotto alla Milanese), polenta, or creamy mashed potatoes to complement the rich sauce.

Is it possible to use beef instead of veal?

Beef shanks can be used as a substitute, though cooking time may need adjustment for tenderness.

Classic Osso Buco Milanese

Tender veal shanks slowly braised in tomato and vegetable sauce with fresh gremolata topping.

Prep Duration
25 minutes
Time to Cook
135 minutes
Overall Time
160 minutes
Created by Nora Whitman


Skill Level Medium

Cuisine Italian

Makes 4 Serving Size

Dietary Information None specified

What You Need

Veal and Seasoning

01 4 veal shanks (about 12 oz each, cross-cut, bone-in)
02 Salt and freshly ground black pepper, to taste
03 1/3 cup all-purpose flour (gluten-free flour if needed), for dredging

Vegetables

01 2 tablespoons olive oil
02 2 tablespoons unsalted butter
03 1 large onion, finely chopped
04 2 carrots, diced
05 2 celery stalks, diced
06 4 garlic cloves, minced

Braising Liquid

01 1 cup dry white wine
02 1 can (14 oz) diced tomatoes with juice
03 1 1/2 cups beef or veal stock
04 2 tablespoons tomato paste
05 2 bay leaves
06 1 teaspoon dried thyme
07 Zest of 1 lemon (reserve for gremolata)

Gremolata

01 2 tablespoons fresh flat-leaf parsley, finely chopped
02 1 garlic clove, minced
03 Zest of 1 lemon (from above)

How-To Steps

Step 01

Prepare Veal Shanks: Pat veal shanks dry and season generously with salt and black pepper. Dredge lightly in flour, shaking off excess.

Step 02

Brown Veal: Heat olive oil and butter in a large Dutch oven over medium-high heat. Brown veal shanks on all sides, about 3 to 4 minutes per side. Transfer to a plate.

Step 03

Sauté Vegetables: Add onion, carrots, celery, and garlic to the same pot. Sauté until softened, approximately 6 minutes.

Step 04

Add Tomato Paste and Deglaze: Stir in tomato paste and cook for 1 minute. Deglaze with white wine, scraping up browned bits from the bottom.

Step 05

Combine Braising Ingredients: Add diced tomatoes with juice, stock, bay leaves, thyme, and half of the lemon zest. Stir to combine.

Step 06

Braise Veal Shanks: Return veal shanks to the pot in a single layer, spoon sauce over them, and bring to a simmer. Cover and transfer to a preheated oven at 325°F. Braise for 2 hours or until veal is fork-tender.

Step 07

Prepare Gremolata: Mix parsley, garlic, and remaining lemon zest to make gremolata.

Step 08

Finish and Serve: Remove cooked shanks to a serving platter. Skim fat from sauce if necessary and simmer to thicken if desired. Spoon sauce over shanks and sprinkle with gremolata before serving.

Tools You'll Need

  • Large Dutch oven or heavy ovenproof pot
  • Tongs
  • Chef's knife
  • Cutting board
  • Wooden spoon

Allergy Info

Review every ingredient for allergens. Ask a healthcare professional if unsure.
  • Contains dairy (butter) and gluten (flour; use gluten-free flour if necessary)

Nutrition Details (Each Serving)

Given for informational purposes, this isn't medical advice.
  • Energy Value: 590
  • Fats: 31 g
  • Carbohydrates: 17 g
  • Proteins: 54 g