Italian Osso Buco: The Classic Milanese Braised Veal Shank Recipe
There are dishes that feed you, and then there are dishes that transport you — and Osso Buco alla Milanese is firmly in the second category. One bite of its impossibly tender, wine-braised veal falling away from the bone, rich marrow glistening at the center, and the fresh pop of lemon-herb gremolata cutting through it all, and you'll understand why this is one of Italy's most celebrated recipes. Born in Milan's noble kitchens and perfected over centuries, Osso Buco (literally "bone with a hole") is the crown jewel of Lombard cuisine — a dish built on patience, good ingredients, and love.
What Makes Osso Buco So Special?
Osso Buco alla Milanese is traditionally served alongside saffron-scented risotto (Risotto alla Milanese) — a pairing so iconic it is practically law in Milan. What sets this dish apart from other braises is its remarkable balance of rusticity and elegance. The collagen-rich veal shank melts into the braising liquid over two-plus hours, creating a silky, deeply savory sauce that tastes like it came from a trattoria tucked under a Milanese archway. The finishing touch — gremolata, a bright, raw blend of lemon zest, garlic, and flat-leaf parsley — is non-negotiable. It lifts every bite, cutting through the richness with a perfume that is unmistakably, unapologetically Italian. This is slow-food cooking at its finest, and every moment it spends on your stove is worth it.
Ingredients
For the Osso Buco
Ingredients
For the Gremolata (Essential!)
Ingredients
Instructions
- Prep the veal shanks. Pat the veal shanks completely dry with paper towels — this is essential for a proper sear. Season generously on both sides with salt and freshly ground black pepper. Using kitchen twine, tie a piece around the circumference of each shank to help it hold its shape during braising. Dredge each shank lightly in flour, shaking off any excess.
- Sear to a deep golden crust. Heat 3 tablespoons of olive oil in a large, heavy-bottomed Dutch oven or braising pan over medium-high heat until shimmering. Working in batches if necessary (never crowd the pan), sear the veal shanks for 3–4 minutes per side until a rich, mahogany-brown crust forms. Transfer to a plate and set aside. This crust is the foundation of your flavor — don't rush it.
- Build the soffritto. Reduce heat to medium. Add the remaining tablespoon of olive oil and the butter to the same pot. Add the diced onion, carrot, and celery (the classic Italian soffritto). Cook, stirring occasionally, for 8–10 minutes until the vegetables are softened and lightly golden. Add the minced garlic and cook for another 1–2 minutes until fragrant.
- Deglaze with white wine. Pour in the white wine and scrape up all those gorgeous browned bits from the bottom of the pot with a wooden spoon. Let the wine bubble and reduce by about half, approximately 4–5 minutes. You'll smell the alcohol cooking off and the sauce beginning to deepen — that's your cue to move forward.
- Add tomatoes and stock. Stir in the crushed San Marzano tomatoes and pour in the stock. Nestle the seared veal shanks back into the pot, standing them upright so the marrow stays in the bone. Tuck in the thyme sprigs, rosemary, and bay leaves. The liquid should come about two-thirds of the way up the shanks — add a splash more stock if needed.
- Braise low and slow. Bring the liquid to a gentle simmer, then cover with a tight-fitting lid and transfer to a preheated oven at 325°F (165°C). Braise for 1 hour 45 minutes to 2 hours 15 minutes, turning the shanks halfway through, until the meat is fall-off-the-bone tender and a knife slides in with zero resistance. Alternatively, keep on the stovetop over the lowest heat, checking every 30 minutes.
- Make the gremolata. While the osso buco finishes, combine the lemon zest, minced garlic, and chopped parsley in a small bowl. Mix together and set aside. Make this fresh — it should be bright and vibrant when it hits the plate.
- Rest, finish, and serve. Remove the pot from the oven. Discard the herb sprigs and bay leaves. Taste the braising liquid and adjust seasoning. Carefully remove the kitchen twine from each shank. Ladle the shanks and generous spoonfuls of the braising sauce into shallow bowls or plates. Crown each shank with a heaping pinch of gremolata and serve immediately alongside Risotto alla Milanese or creamy polenta.
Pro Tips & Variations
- Tie the shanks: Kitchen twine keeps the meat from falling apart during braising and ensures a beautiful presentation on the plate. Remove it just before serving.
- Don't skip the gremolata: It isn't just garnish — it is a structural part of the dish. The bright acid and raw garlic are the flavor counterpoint that makes every bite sing. Add it at the very last moment so it stays fresh and fragrant.
- The marrow is a prize: Use a small spoon to scoop the rich, buttery bone marrow out and spread it over your risotto or a piece of crusty bread. This is the cook's reward — do not waste it.
- Pork or lamb variation: While veal is authentic, meaty pork shanks or lamb shanks are wonderful substitutes. Adjust braising time — lamb may take 30 minutes longer, pork about the same.
- Make-ahead magic: Osso buco is one of those rare dishes that genuinely improves overnight. Braise it a full day ahead, refrigerate, then gently reheat covered in the oven at 300°F (150°C) for 30–40 minutes. The flavors meld and deepen beautifully.
- Sauce too thin? If after braising the sauce looks watery, remove the shanks and simmer the liquid uncovered on the stovetop for 5–10 minutes to reduce and concentrate. It should coat the back of a spoon.
Storage & Make-Ahead Notes
Store leftover osso buco (without the gremolata) in an airtight container in the refrigerator for up to 3 days. The braised shanks freeze exceptionally well — place them in freezer-safe containers submerged in the sauce for up to 3 months. Thaw overnight in the refrigerator and reheat gently, covered, in the oven at 300°F (150°C). Always make a fresh batch of gremolata when serving reheated portions — it only takes two minutes and makes all the difference.
Frequently Asked Questions
Traditional osso buco uses cross-cut veal shanks, about 1½ inches thick. If veal is unavailable or outside your budget, pork shanks are the most practical and delicious substitute — they braise beautifully in the same time frame. Lamb shanks also work wonderfully, though they'll need an extra 20–30 minutes of braising time. Avoid beef shanks if you can, as they can be tougher and have a stronger flavor that competes with the delicate sauce.
Osso buco literally translates to 'bone with a hole' in Italian — a reference to the hollow marrow bone at the center of the cross-cut veal shank. That hole is where the coveted bone marrow lives, which is considered one of the greatest prizes of the dish. Traditionally, small marrow spoons were served alongside osso buco specifically for scooping it out.
Please don't skip the gremolata! It is not optional garnish — it is a defining component of authentic Osso Buco alla Milanese. The raw combination of lemon zest, garlic, and parsley provides a bright, acidic contrast to the deep, rich braised meat and sauce. Without it, the dish feels heavy and one-dimensional. It takes just two minutes to make and transforms every bite.
The classic and most authentic pairing is Risotto alla Milanese — saffron-infused risotto that is silky, golden, and perfectly rich enough to soak up the braising sauce. Creamy polenta is an equally wonderful and slightly more rustic choice. Some people serve osso buco over soft mashed potatoes or buttered egg noodles. A simple green salad or braised greens alongside keeps the meal balanced.
Yes! Complete Steps 1 through 4 (searing and deglazing) on the stovetop — this step is non-negotiable for flavor. Then transfer everything to your slow cooker and cook on LOW for 7–8 hours or HIGH for 4–5 hours, until the meat is fall-off-the-bone tender. The sauce may be a little thinner; if so, reduce it in a saucepan on the stovetop for a few minutes before serving.
The kitchen twine holds each veal shank together during the long braise, preventing the meat from falling off the bone before it hits the plate and helping it maintain an attractive, uniform shape. It also keeps the marrow inside the bone where it belongs. Simply snip and remove the twine carefully just before serving.
Use a dry, crisp Italian white wine — Pinot Grigio, Soave, or Vermentino are all excellent. A good rule of thumb: use a wine you'd actually enjoy drinking. Avoid anything labeled 'cooking wine,' as they are salted and can throw off the balance of your sauce. If you prefer not to use wine, substitute with an equal amount of additional chicken or veal stock plus 1 tablespoon of white wine vinegar for acidity.
You might also like

S'mores Bars: The Gooey, No-Campfire Treat You'll Make on Repeat

Stuffed Pizza Muffins: The Easy, Cheesy Snack Everyone Will Love

Crockpot Chicken Noodle Soup: The Easiest Comfort Food You'll Ever Make

Flower-Shaped Mini Lemon Curd Tarts That Look as Good as They Taste

