Embark on a culinary journey to the heart of Lombardy with this authentic recipe for Ossobuco alla Milanese. This timeless Italian classic features succulent, bone-in veal shanks, slow-braised to absolute perfection in an exquisite tomato and dry white wine sauce. The result is exceptionally tender meat that effortlessly falls off the bone, steeped in a rich, aromatic gravy.
Traditionally, Ossobuco is served alongside the golden Risotto alla Milanese, a creamy saffron-infused rice dish, and crowned with a vibrant, zesty gremolata. This combination creates a symphony of flavors and textures, making it the quintessential comforting meal for special occasions or a leisurely Sunday dinner. Prepare to impress with this deeply flavorful and utterly satisfying Italian masterpiece.

What is Ossobuco alla Milanese? The Heart of Lombardy
Ossobuco, which literally translates from Italian as ‘bone with a hole,’ is a celebrated traditional dish originating from the Lombardy region of Italy, with Milan being its spiritual home. It’s prepared using cross-cut, bone-in veal shanks, showcasing the unique beauty and flavor of this specific cut of meat.
The defining characteristic and true luxury of Ossobuco lies within the bone marrow. As the veal shanks slowly braise, the marrow gently melts into the rich sauce, infusing it with an unparalleled depth, silkiness, and luxurious richness that cannot be replicated. Spooning out this delicate marrow and savoring it with the sumptuous sauce, or spreading it onto a piece of crusty bread, is an experience not to be missed. This dish transforms simple ingredients into an extraordinary culinary delight, perfect for elevating any meal into a memorable feast.
The Perfect Milanese Trio: Veal, Risotto, and Gremolata
The true magic of Ossobuco alla Milanese is fully realized when it’s served with its traditional accompaniments, forming a triumvirate of Milanese flavors that are meant to be together. The rich, slow-cooked veal finds its ideal partner in saffron risotto, also known as Risotto alla Milanese. The creamy texture and delicate aroma of saffron in the risotto perfectly complement the hearty meat, providing a velvety base that absorbs every drop of the exquisite braising liquid.
Equally crucial to the authentic experience is the vibrant topping of gremolata. This simple yet incredibly impactful condiment is a fresh mixture of finely chopped parsley, minced garlic, and bright lemon zest. While it might sound like an optional garnish, trust us when we say you absolutely do not want to skip it! Gremolata provides a vital burst of fresh, zesty flavor that cuts through the richness of the veal and sauce, brightening the entire dish and adding an indispensable aromatic dimension. It takes mere minutes to prepare but adds SO much flavor, truly completing the Milanese culinary experience.
Essential Ingredients for Authentic Ossobuco
Crafting the perfect Ossobuco alla Milanese begins with selecting high-quality ingredients. Here’s a detailed look at what you’ll need to create this classic dish, along with some important tips to ensure the best flavor and texture.

- Veal Shanks: Opt for bone-in veal shanks, ideally cut about 1 inch (2.5cm) thick. The bone marrow is essential for the dish’s signature richness. Thicker cuts help the meat stay together during the long braising process, preventing it from falling apart too early.
- Soffritto (Carrot, Celery, Onion): This aromatic base is fundamental to Italian cuisine. Known as “il soffritto,” this trio of finely chopped vegetables slowly sautéed creates a deeply savory foundation for the sauce, adding incredible depth of flavor to stews and soups like Ossobuco.
- Fresh Herbs (Bay Leaf & Rosemary): Fresh herbs are paramount here. A bay leaf adds a subtle, earthy undertone, while fresh rosemary contributes a wonderfully fragrant, piney note. While dried bay leaves are acceptable, please avoid using dried rosemary as its flavor can be too potent and woody. Fresh thyme also makes a fantastic alternative or addition.
- Dry White Wine: A good quality dry white wine is crucial for deglazing the pan and building the complex flavor profile of the sauce. It adds acidity and depth, enhancing the overall taste. If you must avoid alcohol, you can substitute it with extra chicken stock, but be aware that this will alter the traditional flavor profile.
- Chicken Stock: Use a low-sodium chicken stock to give you precise control over the seasoning. Avoid beef stock, as its robust flavor can easily overpower the delicate taste of the veal, which is the star of this dish.
- Tomato Paste: Often referred to as tomato puree in the UK, this concentrated tomato paste delivers an intense, rich tomato flavor without adding excessive liquid. It contributes to the sauce’s body and vibrant color.
- Gremolata Ingredients: While prepared just before serving, the components for gremolata – fresh flat-leaf parsley, fresh garlic, and lemon zest – are integral to the dish. They provide a vital burst of freshness that balances the richness of the braised veal.
- Other Staples: Don’t forget high-quality olive oil for searing and sautéing, along with salt and freshly ground black pepper to season generously throughout the cooking process.
Step-by-Step Guide to Making Ossobuco alla Milanese
Follow these detailed steps to create a truly unforgettable Ossobuco alla Milanese.
1. Prepare the Veal Shanks
Begin by generously sprinkling the veal shanks with salt and freshly ground black pepper. Press the seasoning into the meat on all sides to ensure it adheres well. Next, place 1-2 tablespoons of all-purpose flour on a shallow plate or in a wide dish. Lightly dust each veal shank in the flour, ensuring all surfaces are coated. Shake off any excess flour gently. This crucial step helps create a beautiful golden crust when searing and acts as a natural thickener for the sauce during braising.

2. Sear the Veal for Flavor
Heat 1-2 tablespoons of olive oil in a large, heavy-bottomed skillet or a Dutch oven over medium-high heat. Once the oil is shimmering and hot, carefully add the floured veal shanks to the pan. Sear the veal on both sides until a deep golden-brown crust forms. This browning process, known as the Maillard reaction, is essential for developing complex, savory flavors. Work in batches if necessary to avoid overcrowding the pan, as overcrowding can steam the meat instead of searing it. Once browned, remove the veal shanks from the pan and set them aside on a plate.
Optional Presentation Step: To ensure the ossobuco pieces maintain their pristine shape throughout the long cooking process, you can tie each individual shank with a piece of kitchen string after browning. While this is purely for aesthetic purposes and does not impact the incredible flavor, it can make for a more elegant presentation.

3. Craft the Aromatic Soffritto
If needed, add another tablespoon of olive oil to the same pan where you browned the veal. Reduce the heat to medium. Add the finely chopped carrot, celery, and onion (your soffritto base) to the pan. Sauté the vegetables gently for about 5-7 minutes, stirring occasionally, until they have softened and become translucent but are not browned. This slow sautéing process allows the vegetables to release their natural sweetness and build a foundational layer of flavor for the sauce. Add the minced garlic and sauté for another minute until fragrant, being careful not to burn it.
4. Deglaze and Build the Sauce
Pour the dry white wine into the pan, scraping the bottom with a wooden spoon to dislodge any browned bits (fond) from the veal and vegetables. This deglazing step adds immense flavor to your sauce. Bring the wine to a vigorous simmer and allow the liquid to reduce by half, cooking off the alcohol and concentrating the wine’s flavor. Next, stir in the low-sodium chicken stock and the tomato paste until everything is thoroughly combined and smooth. The tomato paste will dissolve into the liquid, contributing its rich, concentrated tomato essence.
5. The Gentle Braise: Achieving Fork-Tender Perfection
Add the fresh bay leaf and rosemary sprigs to the sauce. Carefully return the browned veal shanks to the pan, nestling them gently into the flavorful liquid. Ensure that the veal is mostly submerged in the sauce; if not, add a small splash more chicken stock or water until it is. Bring the sauce to a very gentle simmer, then cover the pan tightly with a lid. Reduce the heat to low and allow the Ossobuco to braise slowly for 2 hours. This long, slow cooking process is key to breaking down the tough connective tissues in the veal, resulting in incredibly tender meat that’s packed with flavor.
6. Reduce and Thicken for a Rich Finish
After the initial 2 hours of braising, remove the lid from the pan. Continue to simmer the Ossobuco uncovered for an additional 30 minutes. This final stage allows the sauce to gently reduce, thicken slightly, and intensify in flavor, creating a luxurious gravy that coats the tender veal perfectly. The goal is a rich, glossy sauce, not a thin broth.

Serving Suggestions & The Zest of Gremolata
Once the Ossobuco is ready, carefully transfer each tender veal shank to individual serving plates. Spoon a generous amount of the rich, aromatic sauce over the top. The dish is traditionally and famously served with Risotto alla Milanese, a creamy saffron risotto that perfectly absorbs the sauce. However, other delicious accompaniments include creamy polenta, fluffy mashed potatoes, or even wide pasta noodles. And, of course, don’t forget plenty of crusty Italian bread to sop up every last drop of that incredible sauce!
The final, essential flourish is the fresh gremolata. Just before serving, generously sprinkle the finely chopped parsley, garlic, and lemon zest over each portion. This vibrant, zesty topping provides a crucial contrast to the richness of the braised veal, adding brightness, aroma, and a delightful fresh finish that elevates the entire dish. It’s a simple addition that makes a huge difference in the overall experience.

Expert Tips for a Flawless Ossobuco
Making Ossobuco alla Milanese is a rewarding experience, and these tips will help ensure your dish is nothing short of spectacular:
- Choosing the Right Veal Shanks: Always opt for bone-in veal shanks, ideally cut about 1 inch (2.5 cm) thick. The bone marrow is indispensable for the authentic flavor and luxurious texture of the sauce. Sourcing good quality veal from a reliable butcher makes a significant difference.
- The Power of Soffritto: Don’t rush the sautéing of the carrot, celery, and onion. This slow, gentle cooking of the soffritto allows the vegetables to caramelize slightly and release their full aromatic potential, building a deep, complex flavor foundation for your sauce.
- Don’t Skip the Gremolata! This might seem like a small detail, but gremolata is absolutely vital for Ossobuco. Its fresh, bright, and zesty notes of parsley, lemon, and garlic cut through the richness of the slow-cooked veal, balancing the dish perfectly. It takes just two minutes to prepare and transforms the entire meal.
- Preventing the Veal from Falling Apart: Towards the end of the long braising time, your veal shanks may become so incredibly tender that the meat starts to separate from the bone. While many consider this a sign of a perfectly cooked, rustic dish, if you prefer to maintain a neater presentation, you can tie each shank with a piece of kitchen string *after* you have browned them. This helps hold the meat together during the gentle simmer.
- Make-Ahead & Storage: Ossobuco is one of those wonderful dishes that often tastes even better the next day, as the flavors have more time to meld and deepen. You can prepare the entire dish in advance and gently reheat it before serving. Store leftovers in an airtight container in the refrigerator for 2-3 days.
- Transforming Leftovers: Beyond reheating, leftover Ossobuco meat can be shredded into the remaining sauce and tossed with your favorite pasta for a completely new, equally delicious meal. It’s a fantastic way to enjoy the flavors in a different format.
- Beef Substitution: If bone-in veal shanks are difficult to find, you can certainly substitute beef shanks. Keep in mind that beef has a stronger, more robust flavor than delicate veal, so the final dish will have a different, albeit still delicious, character.
- Freezing Instructions: Ossobuco freezes remarkably well. Allow the dish to cool completely, then transfer it to freezer-safe containers or heavy-duty freezer bags. It can be stored in the freezer for up to 3 months. Thaw completely in the refrigerator overnight before reheating gently on the stovetop until piping hot.
- Flour for Thickening: Remember that dusting the veal in flour before browning is not just for color and texture; it also helps to thicken the braising liquid, contributing to the luxurious consistency of the final sauce.
Frequently Asked Questions (FAQ)
- How do I stop the veal from falling apart?
- Your veal shanks may become so tender that the meat naturally starts to fall off the bone towards the end of cooking. If you prefer to keep them whole for presentation, you can tie each shank with a piece of kitchen string *after browning* but *before braising* to help them maintain their shape. This is an optional step and does not affect the flavor.
- Can I use beef instead?
- Yes, absolutely! If veal is hard to find or if you prefer a different flavor profile, you can use bone-in beef shanks instead. Be aware that beef will have a stronger, richer flavor compared to the more delicate veal.
- Can I prepare it in advance?
- Yes, Ossobuco is an excellent make-ahead dish. You can prepare the entire dish one or two days in advance and gently reheat it on the stovetop before serving. The flavors often deepen and improve overnight.
- What can I do with leftovers?
- Leftovers can be reheated until piping hot and served with your chosen side dish. Another popular option is to shred the tender leftover meat into the sauce and serve it tossed with your favorite pasta for a hearty and delicious meal.
- Can I freeze it?
- Yes, Ossobuco freezes beautifully. Once cooled, transfer it to an airtight container or freezer-safe bag. It can be frozen for up to 3 months. Thaw completely in the refrigerator before reheating gently on the stovetop.
Ossobuco Milanese Recipe Card
Ossobuco Milanese
Traditional Milanese veal shanks, slow-braised to perfection in an incredible tomato and white wine sauce, served with Risotto alla Milanese and topped with zesty gremolata.
Author: Emily

Preparation Time: 10 mins
Cook Time: 3 hrs
Total Time: 3 hrs 10 mins
Servings: 4 servings
Equipment
- Large, heavy-bottomed skillet or Dutch oven
- Kitchen string (optional, for presentation)
Ingredients
- 4 bone-in veal shanks, about 1 inch (2.5cm) thick
- 1-2 tbsp all-purpose flour, for dredging
- 1 large carrot, finely chopped
- 1 celery stalk, finely chopped
- 1 medium onion, finely chopped
- 2 cloves garlic, finely chopped (minced)
- 1 bay leaf (fresh or dried)
- 2 sprigs fresh rosemary (or fresh thyme)
- 3 tbsp tomato paste (tomato puree in UK)
- 2 cups (500ml) low-sodium chicken stock
- 1 cup (125ml) dry white wine
- Salt and freshly ground black pepper, to taste
- 1-2 tbsp olive oil
- For Gremolata: finely chopped fresh parsley, fresh lemon zest, and minced garlic (for serving)
Instructions
- Prepare the Veal: Pat the veal shanks dry with paper towels. Season generously with salt and pepper, pressing the seasoning into the meat. Place the flour on a plate and lightly dredge all sides of each veal shank, shaking off any excess.
- Brown the Veal: Heat 1-2 tbsp of olive oil in a large skillet or Dutch oven over medium-high heat. Once hot, brown the floured veal shanks on all sides until deeply golden. Remove the browned veal and set aside on a plate.
- Optional Step for Presentation: To prevent the ossobuco from falling apart while it cooks, you can tie each piece with kitchen string *after browning*. This is purely for presentation and does not affect the flavor.
- Sauté the Soffritto: Add a little more olive oil to the same pan if necessary. Add the finely chopped carrot, celery, and onion. Sauté the vegetables on a medium heat for 5-7 minutes until softened and translucent, but not browned. Add the minced garlic and sauté for 1 more minute until fragrant.
- Deglaze and Build the Sauce: Pour in the white wine, scraping any browned bits from the bottom of the pan. Bring to a simmer and reduce the liquid by half. Stir in the chicken stock and tomato paste until well combined.
- Braise the Ossobuco: Add the bay leaf and rosemary sprigs to the sauce. Carefully place the browned veal shanks back into the pan, nestling them into the sauce. Ensure the veal is mostly submerged (add a splash more stock if needed). Bring the sauce to a gentle simmer, then cover with a lid.
- Slow Cook: Reduce the heat to low and simmer gently for 2 hours, or until the veal is very tender.
- Reduce the Sauce: After 2 hours, remove the lid. Continue to simmer uncovered for an additional 30 minutes, allowing the sauce to reduce and thicken slightly to a beautiful consistency.
- Prepare Gremolata: While the sauce reduces, prepare the gremolata by finely chopping the fresh parsley, zesting the lemon, and mincing the garlic. Mix these together.
- Serve: Carefully transfer the tender Ossobuco to serving plates. Spoon plenty of the rich sauce over each shank. Generously sprinkle with the freshly prepared gremolata just before serving.
Video
A video demonstration of this Ossobuco alla Milanese recipe is available to guide you through each step and ensure perfect results.
Notes
- Serving Suggestions: Ossobuco is classically served with Risotto alla Milanese (saffron risotto). Creamy polenta or mashed potatoes are also excellent choices. Don’t forget plenty of crusty bread to soak up the incredible sauce!
- Gremolata is Essential: The fresh, zesty flavor of gremolata (finely chopped parsley, garlic, and lemon zest) provides a crucial balance to the rich, slow-cooked veal. It takes just minutes to make and makes a huge difference in the final taste.
- Flour for Thickening: Dusting the veal shanks in flour before browning is an important step that contributes to the beautiful color of the meat and helps thicken the braising sauce, giving it a rich consistency.
- To Stop Your Veal from Falling Apart: While falling-off-the-bone tenderness is desirable, if you wish to keep the veal shanks whole for presentation, you can tie each shank with kitchen string *after browning* to hold them together during the long braise.
- Leftovers & Freezing: Leftover Ossobuco keeps well in an airtight container in the fridge for 2-3 days and reheats beautifully. You can also freeze prepared Ossobuco in suitable containers or freezer bags for up to 3 months. Thaw completely before reheating gently.
- Creative Leftovers: Shred any leftover meat into the sauce and serve with your favorite pasta for another delicious meal.
Helpful Info for All Recipes
- We always recommend using extra virgin olive oil in all our recipes unless otherwise specified.
- For canned or jarred tomatoes, we highly suggest using quality brands like Cirio or Mutti for the best results and authentic flavor.
- Unless stated otherwise, assume all vegetables mentioned are medium-sized.
- All recipes featured on our blog are tested and developed using a fan (convection) oven.
- Find out more about how nutrition information is calculated.
- Discover our essential Italian Pantry Staples to stock your kitchen.
- Explore our guide to Essential Kitchen Tools for Italian Cooking.
Nutrition Information (Approximate per serving)
Calories: 390kcal | Carbohydrates: 11g | Protein: 47g | Fat: 12g | Saturated Fat: 3g | Cholesterol: 170mg | Sodium: 343mg | Potassium: 1093mg | Fiber: 2g | Sugar: 4g | Vitamin A: 2779IU | Vitamin C: 6mg | Calcium: 76mg | Iron: 3mg
Nutrition information is automatically calculated, so should only be used as an approximation.
More Traditional Italian Recipes to Explore
If you’ve enjoyed mastering Ossobuco alla Milanese, we invite you to delve deeper into the rich tapestry of Italian cuisine with these other traditional recipes:
- Chicken Cacciatore – Pollo alla Cacciatora: A rustic and flavorful hunter’s style chicken stew.
- Authentic Bolognese Sauce (Ragu alla Bolognese): The true, slow-cooked meat sauce from Emilia-Romagna.
- Italian Braciole in Tomato Sauce: Rolled beef stuffed with herbs and cheese, braised in a rich tomato sauce.
- Veal Saltimbocca with Prosciutto and Sage: A quick and elegant Roman dish, meaning ‘jumps in the mouth.’
We hope you thoroughly enjoy making and sharing this exquisite Ossobuco alla Milanese recipe! If you’ve tried this or any other recipe on our blog, please don’t forget to rate the recipe and let us know how you got on in the comments section below. Your feedback is invaluable, and we absolutely love hearing from you! You can also FOLLOW US on FACEBOOK, INSTAGRAM, and PINTEREST for daily inspiration and updates. To ensure you never miss out on our delicious new recipes and culinary tips, be sure to sign up for our exclusive NEWSLETTER.