Traditional Ossobuco alla Milanese — tender braised veal shanks cooked in a fragrant white wine and tomato sauce until the meat falls from the bone. Traditionally served with Risotto alla Milanese (saffron risotto) and finished with bright gremolata (parsley, garlic and lemon zest), this is a comforting, elegant dish perfect for special occasions or a leisurely Sunday dinner.

Ossobuco, which literally means “bone with a hole,” comes from Lombardy in northern Italy. The marrow in the shank enriches the sauce and gives the dish its luxurious, silky finish — spoon it out and enjoy on its own or spread on crusty bread.
Ingredients – what you need
Below are the main ingredients and some tips for the best results (salt, pepper and olive oil not listed).

- Veal shanks — choose thick bone-in shanks (around 1 inch / 2.5 cm) so they hold together during cooking.
- Carrot, celery and onion — the classic soffritto base that adds depth to the sauce.
- Bay leaf and rosemary — use fresh herbs if possible; fresh thyme is a good alternative.
- White wine — a dry white wine adds acidity and complexity; omit only if necessary, knowing it will change the flavor.
- Stock — low-sodium chicken stock is best to control salt; avoid beef stock, which can overpower veal.
- Tomato paste — concentrated tomato paste (tomato puree in the UK) for rich flavor without excess liquid.
- Gremolata — finely chopped parsley, garlic and lemon zest; sprinkle over the ossobuco just before serving for a lift of fresh flavor.
Lightly season the veal shanks with salt, press to help it stick, then dredge in flour and shake off the excess.

Heat 1–2 tablespoons of olive oil in a large skillet or Dutch oven over medium-high heat. Brown the shanks on both sides until nicely colored, then remove and set aside.
Optionally, tie each shank with kitchen string after browning to help them keep their shape for presentation. This step is optional and doesn’t affect flavor.

In the same pan, add more olive oil if needed and 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 simmer until reduced by half. Stir in the chicken stock and tomato paste, then add the herbs.
Return the veal shanks to the pan, nestling them into the sauce. Cover and simmer gently for about 2 hours, until the meat is very tender.

After 2 hours, remove the lid and simmer uncovered for 30 minutes to reduce and slightly thicken the sauce. Serve the ossobuco topped with gremolata.
Recipe tips and FAQs
- Serving suggestions — traditionally served with Risotto alla Milanese. It also pairs beautifully with creamy polenta, mashed potatoes or any risotto; don’t forget crusty bread to soak up the sauce.
- Gremolata — easy to prepare in two minutes: finely chop fresh parsley and garlic, grate lemon zest, mix and scatter over the veal just before serving.
- Flouring the veal — dredging the shanks in flour helps thicken the sauce as it cooks.
If you prefer the shanks to stay intact for presentation, tie each shank with kitchen string after browning. The meat will still become very tender and may begin to loosen from the bone toward the end of cooking.
Yes. If veal is unavailable, beef shanks are a suitable substitute but will produce a stronger, beefier flavor.
Yes. Ossobuco reheats well and often tastes better the next day. Store in the fridge for 2–3 days and reheat gently before serving.
Reheat and serve with your chosen side, or shred the leftover meat into the sauce and toss with pasta for another meal.
Yes. Freeze cooled ossobuco in suitable containers or freezer bags. Thaw thoroughly before reheating and serving.

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 tried this Ossobuco recipe, please rate it or leave a comment — feedback is always appreciated. Follow the blog or subscribe to the newsletter for more authentic Italian recipes and tips.
Step By Step Photos Above
Most of our recipes include step-by-step photos and helpful tips to make them successfully the first time.
Ossobuco Milanese
By Emily

Equipment
- kitchen string (optional)
Ingredients
- 4 bone-in veal shanks, about 1 inch / 2.5 cm 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 low-sodium chicken stock (500 ml)
- 1 cup dry white wine (125 ml)
- Salt and pepper, to taste
- 1–2 tbsp olive oil
- Gremolata (finely chopped parsley, lemon zest and garlic) for serving
Instructions
- Season the veal shanks with salt and press it in. Dredge each shank in flour and shake off the excess.
- Heat 1–2 tbsp olive oil in a large skillet or Dutch oven. Brown the shanks on both sides, then remove and set aside.
Optional step – presentation only
- Tie each shank with kitchen string after browning to keep them intact while cooking.
Make the sauce
- In the same pan, add more olive oil if needed and sauté carrot, celery and onion over medium heat until softened but not browned. Add garlic and cook 1 minute more.
- Add the white wine and reduce by half. Stir in the chicken stock and tomato paste.
- Add the herbs and 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.
- Serve the ossobuco topped with gremolata.
Notes
- Serving suggestions: serve with saffron risotto, creamy polenta, mashed potatoes or crusty bread.
- Gremolata: finely chop parsley and garlic and grate lemon zest; sprinkle over the ossobuco just before serving.
- Flouring: dusting the veal in flour helps the sauce thicken as it cooks.
- Storage: leftovers keep in the fridge 2–3 days and can be frozen; thaw completely before reheating.
Helpful Info for All Recipes
- Extra virgin olive oil is used unless stated otherwise.
- All vegetables are medium sized unless noted.
- Recipes are tested using a fan (convection) oven where applicable.
Nutrition
Nutrition information is an approximation.
Leave a comment below!