Traditional Ossobuco alla Milanese—veal shanks braised in a fragrant tomato and white wine sauce until the meat is melting and falling off the bone. Serve with saffron risotto (Risotto alla Milanese) or creamy polenta and finish with a bright gremolata of parsley, garlic and lemon zest for a truly comforting, elegant meal.

Ossobuco originates from Lombardy in northern Italy; the name literally means “bone with a hole,” referring to the marrow in the cross-cut veal shanks. The marrow enriches the sauce and adds a luxurious finish—spread it on crusty bread or spoon it over the risotto.
Ingredients – what you need
The photo below shows the ingredients used in this recipe (excluding salt, pepper and olive oil). Read the notes for tips on substitutions and technique.

- Veal shanks – choose thick cross-cut shanks (about 1 inch / 2.5 cm) so they hold together while braising.
- Carrot, celery and onion – the soffritto base adds depth and aroma to the braise.
- Bay leaf and rosemary – fresh herbs give the best flavour; fresh thyme can be used instead of rosemary.
- White wine – use a dry white wine to deglaze and brighten the sauce; omit only if necessary.
- Stock – low-sodium chicken stock is recommended to keep the veal’s delicate flavour; avoid strong beef stock.
- Tomato paste – concentrated tomato paste (tomato puree) strengthens the sauce without adding excess liquid.
- Gremolata (important!) – a quick mix of finely chopped parsley, garlic and lemon zest lifted over the finished dish makes a big difference.
Sprinkle the veal shanks with salt and press it in so it adheres. Place flour on a plate and lightly dredge each shank, shaking off excess.

Heat 1–2 tbsp olive oil in a large skillet or Dutch oven. When hot, brown the veal on both sides. Remove and keep aside.
For neater presentation, tie each shank with kitchen string after browning; this step is optional and does not change the flavour.

In the same pan, add more olive oil if needed, then sauté the finely chopped carrot, celery and onion over medium heat until softened but not browned. Add the garlic and cook for another minute.
Pour in the white wine and reduce by half. Stir in the chicken stock and tomato paste until combined.
Add the bay leaf and rosemary, return the veal to the pan, cover and simmer gently for about 2 hours.

After 2 hours, remove the lid and simmer uncovered for 30 minutes so the sauce reduces and thickens slightly. Adjust seasoning with salt and pepper.
Serve the ossobuco topped with gremolata and alongside saffron risotto, creamy polenta or mashed potatoes. Finish with crusty bread to mop up the sauce.
Recipe tips and FAQs
- Serving suggestions – Risotto alla Milanese (saffron risotto) is traditional, but creamy polenta, mashed potatoes or any risotto work well.
- Gremolata – quick to make: finely chop fresh parsley, garlic and lemon zest and sprinkle over the veal before serving.
- Flouring the veal – dredging in flour helps thicken the braising liquid into a rich sauce.
The meat becomes very tender and may start to fall off the bone toward the end of cooking. If you prefer the shanks to remain intact, tie each shank with kitchen string after browning to hold them together while braising.
Yes. If veal is hard to find, beef shanks are a good substitute and will yield a stronger, robust flavor.
Yes. The dish reheats well and can be prepared a day or two ahead; store in the fridge for 2–3 days.
Reheat until piping hot and serve with your preferred side, or shred the leftover meat into the sauce and toss with pasta.
Yes. Freeze cooled ossobuco in suitable containers or freezer bags and thaw completely before reheating.

More traditional Italian recipes
- Chicken Cacciatore – Pollo alla Cacciatora
- Authentic Bolognese Sauce (Ragu alla Bolognese)
- Italian Braciole in Tomato Sauce
- Veal Saltimbocca with Prosciutto and Sage
If you try this Ossobuco recipe, please rate it and leave a comment with how it turned out—you can also follow the blog’s social channels or sign up to the newsletter for more recipes and tips.
Step By Step Photos Above
Most recipes include step-by-step photos and helpful tips to get it right the first time.
Ossobuco Milanese
By Emily

Equipment
- kitchen string (optional)
Ingredients
- 4 bone-in veal shanks about 1 inch/2.5cm thick
- 1–2 tbsp flour for dredging
- 1 carrot finely chopped
- 1 celery stalk finely chopped
- 1 onion finely chopped
- 2 cloves garlic finely chopped
- 1 bay leaf
- 2 sprigs rosemary
- 3 tbsp tomato paste
- 2 cups chicken stock (500ml)
- 1 cup white wine (125ml)
- Salt and pepper to taste
- 1–2 tbsp olive oil
- gremolata (finely chopped parsley, lemon and garlic for serving)
Instructions
- Sprinkle the veal shanks with salt and press it in. Dredge all sides in flour and shake off the excess.
- Heat 1–2 tbsp olive oil in a large skillet or Dutch oven. When hot, brown the veal on both sides, then remove and set aside.
Optional step – presentation only
- Tie each shank with kitchen string after browning to keep the pieces intact during cooking.
Make the sauce
- Add more olive oil to the pan if needed, then sauté the chopped carrot, celery and onion over medium heat until softened but not browned. Add garlic and cook for 1 minute more.
- Pour in the white wine and reduce by half. Add chicken stock and tomato paste and stir to combine.
- Add the herbs, return the veal to the pan, cover and simmer gently for 2 hours.
- Remove the lid and simmer uncovered for 30 minutes until the sauce reduces and thickens slightly. Season to taste.
- Serve topped with gremolata and with your chosen side.
Notes
- Serving suggestions – saffron risotto is traditional, but polenta or mashed potatoes are excellent alternatives; don’t forget crusty bread to soak up the sauce.
- Gremolata – makes a big difference: finely chop parsley, garlic and lemon zest and sprinkle over the ossobuco just before serving.
- Dusting the veal with flour – helps thicken the sauce during braising.
- Keeping the shanks whole – tie them after browning if you prefer a neat presentation.
- Leftovers & freezing – refrigerate for 2–3 days or freeze in suitable containers; thaw completely before reheating.
Helpful Info for All Recipes
- I use extra virgin olive oil unless noted otherwise.
- When using canned tomatoes, choose a quality brand for best flavour.
- All vegetables are medium sized unless otherwise stated.
- Recipes are developed using a fan (convection) oven unless noted.
Nutrition
Carbohydrates: 11 g |
Protein: 47 g |
Fat: 12 g
Nutrition information is automatically calculated and should be used as an approximation.