You need 2.5 hours and one heavy pot. No marinating overnight, no complicated techniques, no babysitting a finicky braise.

Veal shanks braise low and slow while you prep sides or make a simple brodo on the side. The bone marrow melts into the sauce while the meat falls off the bone.
This is what you make when you want something special on a Tuesday but don't want to stand over the stove for hours.
Italian Osso Buco Milanese braises veal shanks in white wine and stock until fork-tender. Brown the meat deeply before adding liquid - those caramelized bits become the sauce base. Keep the simmer gentle at 180-190°F for 2 hours so the meat stays tender instead of turning tough.
Why This Recipe Works
Braising veal shanks at a gentle simmer breaks down collagen into gelatin while keeping the meat moist. The bone marrow melts into the sauce, adding richness you can't get from boneless cuts. For texture contrast that cuts through the richness, serve it with something fresh like salad.
Remember it later
Planning to try this recipe soon? Save it for a quick find later!
Prep Time
20 min
Cook Time
120 min
Total Time
140 min
Servings
4 servings
Difficulty
Medium
Category
Main Dish
Quick Tip
Brown meat well for deep flavor
Best For
Weeknight | Entertaining
What makes this work:
- Searing creates a caramelized crust - those browned bits dissolve into the braising liquid and become the sauce base
- Low simmer at 180-190°F tenderizes without drying - boiling tightens proteins and turns meat stringy
- Wine deglazes the fond - scraping up those stuck-on bits adds layers of flavor you can't get from stock alone
- Bone marrow enriches the sauce - as it melts during braising, it adds silky body and deep savory notes
- Gremolata cuts richness - fresh lemon zest and parsley balance the heavy sauce right before serving
What You'll Need

Shop for veal shanks with visible marrow in the center bone. The aromatics - carrots, celery, onion - form the classic soffritto base that builds flavor as they cook down in the braising liquid.
- 4 veal shanks (bone-in, about 1.5 inches thick)
- 2 carrots (diced)
- 2 celery stalks (diced)
- 1 onion (diced)
- 4 garlic cloves (minced)
- 1 cup dry white wine
- 2 cups beef or veal stock
- 2 tablespoon tomato paste
- Zest of 1 lemon
- ¼ cup fresh parsley (chopped)
- 2 garlic cloves (minced)
Ingredient Details
- Veal shanks
Look for cuts 1.5 inches thick with visible marrow - thinner shanks dry out, thicker ones take longer to tenderize - Dry white wine
Use something you'd drink - Pinot Grigio or Sauvignon Blanc work well, avoid sweet wines that caramelize oddly - Beef or veal stock
Low-sodium lets you control salt as sauce reduces - full-sodium stock concentrates and can turn too salty - Tomato paste
Adds color and balances acidity - skip it if you want a lighter, wine-forward sauce - Carrots and celery
Dice small so they break down into the sauce - large chunks stay firm and distract from the meat - Lemon zest
Use only the yellow outer layer, no white pith - pith tastes bitter and ruins gremolata - Fresh parsley
Flat-leaf parsley has better flavor than curly - dried parsley won't work here, it lacks the fresh brightness
Ingredient Swaps
Beef shanks cost less than veal and work fine if you extend the braise by 30 minutes. The flavor shifts from delicate to beefy, but the method stays the same.
Common swaps that work:
- Beef shanks instead of veal - slightly chewier texture, deeper flavor, needs 30 min longer braising time
- Dry vermouth instead of white wine - similar acidity and flavor profile, slightly herbal notes
- Vegetable stock instead of beef stock - lighter body but still works, loses some richness
- Fresh diced tomatoes instead of tomato paste - more liquid in sauce, less concentrated color, simmer uncovered longer to reduce
Beef Shanks
Works for: Budget meals, deeper beef flavor, slightly longer braise
Skip if: You want traditional Milanese flavor or quicker cook time
Cornstarch for Thickening
Works for: Gluten-free diets, lighter coating on meat before searing
Skip if: You prefer traditional flour dredging or want deeper browning
Instructions
The shanks braise for 2 hours with minimal attention once they're in the pot. Check every 30 minutes to make sure the liquid stays at a gentle simmer - bubbles should barely break the surface. Pair this with easy potato wedges side to soak up extra sauce.
Brown the shanks: Heat 2 tablespoon olive oil in a Dutch oven over medium-high heat. Pat shanks dry, season with salt and pepper. Sear each shank 4-5 min per side until deep golden brown. Remove and set aside.
Cook the aromatics: Reduce heat to medium. Add diced carrots, celery, and onion to the same pot. Cook 5-7 min, stirring often, until vegetables soften and edges brown. Stir in minced garlic and tomato paste, cook 1 min.
Deglaze and braise: Pour in white wine, scrape up browned bits from the bottom with a wooden spoon. Simmer 2-3 min until wine reduces by half. Add stock, return shanks to pot (liquid should come halfway up the sides). Bring to a simmer, cover, reduce heat to low.
Simmer low and slow: Braise covered 1.5-2 hours, checking every 30 min to maintain gentle simmer at 180-190°F. Meat is done when it pulls apart easily with a fork. If sauce looks thin, remove lid last 15 min to reduce and thicken.
Make gremolata and serve: Mix lemon zest, chopped parsley, and minced garlic in a small bowl. Let shanks rest 10 min off heat. Serve each shank with sauce spooned over top, sprinkle gremolata right before plating.
What to Serve With It
Rich braised meat needs something to balance the plate - either a starchy side to soak up sauce or a bright element to cut through richness. For meal planning when serving hearty mains, check out these weeknight chicken dinner ideas that follow the same approach.
| Side Dish | Prep | Why It Works | How to Serve |
|---|---|---|---|
| Creamy polenta | Easy | Soaks up sauce, mild flavor balances richness | Spoon polenta on plate, nestle shank on top, drizzle sauce over both |
| Simple risotto | Medium | Classic Milanese pairing, starchy texture holds sauce | Serve risotto alongside, use to mop up braising liquid |
| Steamed green beans | Easy | Adds crunch and freshness, cuts through heavy sauce | Toss beans with lemon juice, pile next to shank |
| Buttered mashed potatoes | Easy | Neutral base absorbs sauce without competing flavors | Spread potatoes on plate, place shank on top with extra sauce |
| Garlic bread | Easy | Crispy texture contrasts tender meat, perfect for sopping | Serve warm slices on the side for dipping in sauce |
Three ways to serve it:
- Traditional Milanese plate: Saffron risotto as base, shank on top, gremolata sprinkled over everything
- Weeknight version: Serve over buttered egg noodles or mashed potatoes with steamed vegetables on the side
- Entertaining presentation: Place shank on creamy polenta, spoon sauce around (not over) to show the golden crust, garnish with fresh gremolata
Store and Reheat
Osso Buco reheats well because the braising liquid keeps the meat moist. Store shanks and sauce together so the meat doesn't dry out in the fridge. Add a crispy potato on the side when reheating for texture contrast.
| Method | Time | Best For |
|---|---|---|
| 🍳 Stovetop | 10-15 min on low heat | Best texture retention, easiest to control moisture |
| 🔥 Oven | 20 min at 325°F covered | Even reheating for multiple servings without drying meat |
| 📦 Microwave | 3-4 min medium power | Single servings when you need speed over texture |
For best results when storing:
- Refrigerate shanks submerged in braising liquid in shallow airtight container - exposed meat dries out within a day
- Let dish cool to room temp before refrigerating to prevent condensation that waters down sauce
- Freeze in portions with sauce poured over meat - freeze up to 3 months, thaw overnight in fridge before reheating
- Skim solidified fat from surface before reheating - chill sauce, fat hardens on top and lifts off easily
- Add splash of stock when reheating if sauce thickened too much - start with 2 tablespoon and add more as needed
Frequently Asked Questions
Braise covered at a gentle simmer (180-190°F) for 1.5-2 hours. The meat is done when it pulls apart easily with a fork and the marrow has melted into the sauce.
Yes, it reheats well and flavor improves overnight. Store shanks submerged in sauce, refrigerate up to 4 days. Reheat gently on stovetop or in 325°F oven until warmed through, make gremolata fresh right before serving.
Serve with creamy polenta, saffron risotto, or buttered mashed potatoes to soak up sauce. Add steamed green beans or a simple salad for brightness that cuts through the richness.
The meat should pull apart easily with a fork without resistance. If it still feels firm or requires sawing with a knife, continue braising and check every 15 minutes until tender.
Yes, beef shanks work but need 30 minutes longer braising time and have a deeper, beefier flavor. The texture is slightly chewier than veal but still tender when cooked properly.

Italian Osso Buco Milanese
Ingredients
Equipment
Method
- Heat 2 tablespoon olive oil in a Dutch oven over medium-high heat. Pat veal shanks dry, season with salt and pepper. Sear each shank 4-5 minutes per side until deep golden brown. Remove and set aside.4 veal shanks
- Reduce heat to medium. Add diced carrots, celery, and onion to the same pot. Cook 5-7 minutes, stirring often, until vegetables soften and edges brown. Stir in minced garlic and tomato paste, cook 1 minute.2 carrots, 2 stalks celery, 1 onion, 4 cloves garlic, 2 tbsp tomato paste
- Pour in white wine and scrape up browned bits from the bottom with a wooden spoon. Simmer 2-3 minutes until wine reduces by half. Add beef or veal stock and return shanks to the pot so liquid comes halfway up the sides. Bring to a simmer, cover, then reduce heat to low.1 cup dry white wine, 2 cups beef or veal stock, 4 veal shanks
- Braise covered 1.5-2 hours, checking every 30 minutes to maintain a gentle simmer at 180-190°F. The meat is done when it pulls apart easily with a fork. Remove the lid during the last 15 minutes if sauce needs thickening.4 veal shanks
- Mix lemon zest, chopped parsley, and remaining minced garlic in a small bowl. Let shanks rest 10 minutes off heat. Serve each shank with sauce spooned over top and sprinkle gremolata just before plating.1 unit lemon zest, 0.25 cup fresh parsley, 4 cloves garlic
Notes
- Brown the meat well to develop deep flavor base for sauce.
- Keep the heat low enough to maintain a gentle simmer; boiling toughens the meat.
- Trim visible fat from shanks before browning to prevent greasy sauce-marrow provides enough richness.




