Osso Buco Milanese Classic

Featured in: Everyday Home Meals

Osso Buco is a timeless Milanese specialty featuring veal shanks braised slowly in a savory tomato and vegetable sauce. The tender meat melds beautifully with aromatic herbs, wine, and hearty stock, developing deep flavors over a couple of hours. A fresh gremolata of parsley, garlic, and lemon zest is added at the end to lend a zesty finishing touch, enhancing the dish's comforting and elegant profile. Perfect served alongside risotto, polenta, or mashed potatoes for a satisfying meal.

Updated on Mon, 29 Dec 2025 10:34:00 GMT
Tender Osso Buco served in a savory tomato sauce, with a vibrant gremolata garnish, ready for sharing. Pin It
Tender Osso Buco served in a savory tomato sauce, with a vibrant gremolata garnish, ready for sharing. | tongsoffset.com

The first time I made osso buco, my grandmother called mid-afternoon to check on me. She knew I was attempting something serious, something that demanded patience and a heavy Dutch oven. When the kitchen finally filled with that deep, savory aroma—veal, wine, tomatoes, all melting together—I understood why she'd waited so long to teach me. This dish isn't rushed; it unfolds slowly, rewarding you for showing up and staying present.

I made this for my partner on a cold February evening when we both needed something warming and real. As the shanks braised quietly in the oven, we played music and talked for hours, and somewhere between the second glass of wine and checking on the pot, I realized the best meals are the ones that give you permission to slow down.

Ingredients

  • Veal shanks (4 pieces, about 350 g each, cross-cut, bone-in): The marrow inside these bones is pure gold, dissolving into the braising liquid and making the sauce silky. Choose shanks that are roughly even in thickness so they cook at the same pace.
  • Salt and freshly ground black pepper: Don't skimp here; generous seasoning is what keeps the finished dish from tasting flat.
  • All-purpose flour (1/3 cup or gluten-free option): This light dredge creates a delicate crust that helps the meat brown beautifully and thickens the sauce slightly as it cooks.
  • Olive oil and unsalted butter (2 tbsp each): The combination gives you the browning power of butter with the higher smoke point of oil, and honestly, it tastes better this way.
  • Onion, carrots, celery, and garlic: These are your flavor foundation; chop them finely so they almost disappear into the sauce by the end, lending depth without texture.
  • Dry white wine (1 cup): Use something you'd drink; the acidity will brighten the finished dish and help break down the meat.
  • Diced tomatoes with juice (1 can, 400 g): Canned tomatoes are actually more consistent than fresh here, and the juice becomes part of your precious braising liquid.
  • Beef or veal stock (1 1/2 cups): This is what carries all the flavor, so quality matters more than you'd think.
  • Tomato paste (2 tbsp): A small amount goes a long way, adding depth and richness that fresh tomatoes alone can't achieve.
  • Bay leaves, dried thyme, and lemon zest: These three ingredients transform the sauce from merely good to something people remember; don't skip the lemon.
  • Fresh flat-leaf parsley, garlic, and lemon zest for gremolata: This bright, punchy finish is what makes someone look up from their plate and say wow.

Instructions

Product image
Keeps spices within easy reach while cooking, helping you season dishes quickly during everyday meal prep.
Check price on Amazon
Prepare the veal:
Pat your shanks completely dry with paper towels—this is the secret to browning. Season them generously all over with salt and pepper, then dredge lightly in flour and shake off any excess so you're left with just a thin, whisper-soft coating.
Build your crust:
Heat the olive oil and butter together in your Dutch oven over medium-high heat until it's shimmering and smells nutty. Brown the veal shanks carefully on all sides, about 3 to 4 minutes per side, letting them develop a golden-brown crust without moving them around too much.
Sauté the vegetables:
Transfer the browned shanks to a plate and add your chopped onion, carrots, celery, and garlic to the same pot. Stir frequently and cook until everything is soft and starting to caramelize, about 6 minutes, letting all those caramelized bits stick to the bottom.
Deepen the flavors:
Stir in the tomato paste and let it cook in the fat for just 1 minute; this blooms the flavor and removes any raw taste. Pour in the white wine slowly, scraping the bottom of the pot with a wooden spoon to lift up all those browned, flavorful bits.
Build the braising liquid:
Add the canned tomatoes with their juice, the stock, bay leaves, thyme, and half of the lemon zest. Stir everything together so the flavors start to mingle, then nestle the veal shanks back into the pot in a single layer and spoon the sauce over them.
Braise low and slow:
Bring everything to a gentle simmer, then cover the pot and transfer it to a preheated 160°C (325°F) oven. Let it cook undisturbed for about 2 hours, until the veal is so tender a fork slides through it without resistance.
Make the gremolata:
While the veal braises, finely chop your parsley and mince the garlic, then combine them with the remaining lemon zest in a small bowl. This bright, fragrant mixture is the secret weapon that makes everything sing.
Finish and serve:
Carefully remove the cooked shanks to a serving platter. Skim any excess fat from the surface of the sauce if you'd like, or leave it for extra richness, then simmer the sauce for a few minutes if it needs thickening. Pour the sauce generously over the shanks and scatter the gremolata on top just before serving.
Product image
Keeps spices within easy reach while cooking, helping you season dishes quickly during everyday meal prep.
Check price on Amazon
Fork-tender veal shanks in a rich tomato braise: this delicious Osso Buco dish is a comforting classic. Pin It
Fork-tender veal shanks in a rich tomato braise: this delicious Osso Buco dish is a comforting classic. | tongsoffset.com

There's something almost ceremonial about ladling that rich, glossy sauce over the tender veal at the table, watching it pool around the bone and catch the light. That's when you know you've made something worth the wait.

What to Serve Alongside

Saffron risotto is the traditional choice, and for good reason—the creamy rice soaks up that incredible sauce and the saffron's earthiness echoes the tomato and herbs. If you want something simpler, creamy mashed potatoes work beautifully, or even soft polenta if you're leaning toward comfort. The key is choosing something that won't compete with the veal but will celebrate that sauce you've spent two hours building.

Making It Your Own

While this recipe follows the Milanese tradition closely, I've found it welcomes small changes gracefully. Some cooks add a splash of vermouth instead of white wine, others swear by beef shanks and claim they're even more forgiving. The core of the dish—patient braising, rich sauce, bright gremolata—stays the same, but the details can shift to match what you have on hand or what you're craving.

Storing and Reheating

This dish actually tastes better the next day once all the flavors have had time to marry together. Store it in an airtight container in the refrigerator for up to four days, or freeze it for up to three months. To reheat, bring it gently to a simmer on the stovetop over low heat, stirring occasionally and adding a splash of stock if it seems dry.

  • Make it gluten-free by swapping all-purpose flour for certified gluten-free flour, which dredges just as easily and browns beautifully.
  • If veal is hard to find or too expensive, beef shanks work wonderfully and may need an extra 15 to 30 minutes in the oven depending on size.
  • The gremolata must be added fresh just before serving to keep that bright, zingy quality that balances the richness of the braise.
Product image
Ideal for slow-simmered sauces, braised vegetables, baked dips, and cozy one-pot meals with even heat.
Check price on Amazon
Imagine the aroma: this hearty Osso Buco, simmered low and slow, is a perfect dinner centerpiece. Pin It
Imagine the aroma: this hearty Osso Buco, simmered low and slow, is a perfect dinner centerpiece. | tongsoffset.com

Osso buco teaches you that some of the best things in life aren't rushed. This is food that asks you to show up, be present, and trust the process.

Recipe FAQs

What cut of meat is used in osso buco?

Traditional osso buco uses cross-cut veal shanks that include the bone marrow, which enhances the dish's rich flavor during slow braising.

How do you achieve tender veal shanks?

Slow braising at low temperatures for about two hours allows the collagen in the veal to break down, resulting in tender and flavorful meat.

What is gremolata and how is it used?

Gremolata is a fresh mix of chopped parsley, minced garlic, and lemon zest, sprinkled over the dish to add brightness and a zesty contrast to the rich sauce.

Can I substitute veal with another meat?

Yes, beef shanks can be used as a substitute; just be sure to adjust cooking times to ensure tenderness.

What sides pair well with this dish?

Classic accompaniments include saffron risotto, polenta, or creamy mashed potatoes to complement the rich and vibrant flavors.

Osso Buco Milanese Classic

Slow-braised veal shanks in rich tomato sauce, enhanced by a bright, lemony gremolata topping.

Prep Time
25 minutes
Cook Time
135 minutes
Overall Time
160 minutes
Recipe by Charlotte King


Skill Level Medium

Cuisine Type Italian

Serving Size 4 Portions

Diet Preferences None specified

What You'll Need

Veal and Seasoning

01 4 veal shanks (approximately 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 as 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 half for gremolata)

Gremolata

01 2 tablespoons fresh flat-leaf parsley, finely chopped
02 1 garlic clove, minced
03 Reserved half lemon zest

How to Make It

Step 01

Prepare and Season Veal: Pat the veal shanks dry, then season generously with salt and freshly ground black pepper. Lightly dredge each in flour, shaking off the excess.

Step 02

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

Step 03

Sauté Vegetables: In the same pot, add chopped onion, carrots, celery, and minced garlic. Cook until softened, about 6 minutes.

Step 04

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

Step 05

Combine Braising Ingredients: Add diced tomatoes with juice, beef or veal stock, bay leaves, dried thyme, and half of the lemon zest. Stir to integrate flavors.

Step 06

Return Veal and Simmer: Place veal shanks back into the pot in a single layer. Spoon sauce over them and bring to a gentle simmer.

Step 07

Braise in Oven: Cover and transfer the pot to a preheated oven at 325°F. Braise for 2 hours, or until the veal is fork-tender.

Step 08

Prepare Gremolata: While veal cooks, combine fresh parsley, minced garlic, and the reserved half of lemon zest to make gremolata.

Step 09

Serve and Garnish: Remove veal shanks to a serving platter. Skim fat from sauce if desired and reduce sauce slightly on stovetop to thicken. Spoon sauce over the shanks and sprinkle with gremolata before serving.

Gear Needed

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

Allergy Info

Always double-check for allergens in each item and talk to a healthcare expert if unsure.
  • Contains dairy (butter) and gluten (flour; use gluten-free alternative if needed). Verify labels if allergic or intolerant.

Nutrition Details (per portion)

These details are only for reference and not a substitute for actual professional advice.
  • Caloric Value: 590
  • Fats: 31 g
  • Carbohydrates: 17 g
  • Proteins: 54 g