Osso buco fails at home for two consistent reasons: the veal shanks are browned in a pan that’s not hot enough, so they steam instead of sear, and the braising liquid is too deep, so the meat boils rather than braises. Get both right — deep crust, shallow liquid — and the collagen in the shank dissolves into gelatin and you have the real dish.

Osso buco alla milanese is braised veal shank with a gremolata — a bright mixture of lemon zest, garlic, and parsley — stirred in at the end. The dish comes from Milan, where veal shanks were a humble cut made magnificent by a slow braise in white wine and stock. The cross-cut shank exposes the bone marrow, which melts into the braising liquid as it cooks and becomes the most prized part of the plate.
The total cooking time is about 1 hour 45 minutes, most of which is unattended braising. The hands-on time is 20 minutes: browning the meat and building the soffritto base. Everything after that is the oven doing the work. This recipe serves 4 and scales easily — braise as many shanks as your pot will hold in a single layer.
What Is Osso Buco?
Osso buco means “bone with a hole” in Italian — the hole being the hollow center of the cross-cut veal shank that holds the marrow. It’s one of the defining dishes of Milanese cuisine, traditionally served with saffron risotto (risotto alla milanese) — the braising sauce spooned over both. The gremolata added at the very end is not garnish but a functional ingredient: the raw lemon zest and garlic cut through the richness of the braised meat and wake up the flavor of the dish after hours in the oven.
Origins of Osso Buco
The dish appears in Milanese cookbooks as far back as the 19th century, though the exact origin is unclear. What is clear is that it belongs to the tradition of northern Italian cucina povera — peasant cooking that used every part of the animal, including the shank, which was too tough for quick cooking and required slow braising to become edible. The marrow inside the bone was considered the prize: Milanese families traditionally ate it with a small long spoon, called a “marrow spoon,” served after the meat.
Ingredients for Osso Buco
The veal shanks should be cut 1½ to 2 inches (4 to 5cm) thick — thinner and the meat falls off the bone before the collagen has time to fully dissolve; thicker and the braising time extends significantly. Tie each shank around its circumference with kitchen twine to keep the meat attached to the bone during cooking.
The soffritto — diced onion, carrot, and celery — forms the base of the braising liquid. Dry white wine is the classic braising liquid alongside chicken or veal stock; avoid red wine in this recipe, which gives a color and flavor that’s too heavy for the delicate veal. The gremolata (lemon zest, raw garlic, flat-leaf parsley) is prepared separately and stirred in during the last 5 minutes of cooking — raw, not cooked, so the citrus and garlic flavors stay sharp.


Osso Buco (Braised Veal Shanks)
Ingredients
- 4 veal shanks, cross-cut 1½ to 2 inches (4 to 5 cm) thick, tied with kitchen twine around circumference
- 1 tsp salt
- ½ tsp black pepper
- 3 tbsp all-purpose flour for dredging
- 3 tbsp olive oil
- 1 medium onion, diced
- 1 medium carrot, diced
- 1 celery stalk, diced
- 3 cloves garlic, minced
- 1 tbsp tomato paste
- 1 cup dry white wine
- 2 cups chicken or veal stock
- 2 sprigs fresh thyme
- 1 bay leaf
For the Gremolata
- 2 tbsp lemon zest finely minced
- 2 cloves garlic, minced raw
- ¼ cup flat-leaf parsley, chopped
Instructions
- Pat the veal shanks completely dry with paper towels. Season generously with salt and pepper on all surfaces, including the cut faces and sides.
- Dredge each shank lightly in flour, shaking off excess — this helps the exterior brown and thickens the braising liquid slightly as it cooks.
- Heat olive oil in a Dutch oven over high heat until the oil shimmers and just begins to smoke. The pan must be very hot or the shanks will steam instead of sear.
- Working in batches to avoid crowding, add the veal shanks and sear 3 to 4 minutes per side, turning once, until deeply browned (almost caramelized) on both cut faces. Do not rush this step — a pale sear produces a weak braising liquid. Remove shanks and set aside on a plate.
- Reduce heat to medium. Add a little more oil if the pan is dry, then add the diced onion, carrot, and celery. Cook 5 to 7 minutes, stirring occasionally, until the vegetables are softened and beginning to brown at the edges.
- Add the minced garlic and cook 1 minute more until fragrant. Add the tomato paste and stir it into the vegetables for 1 minute until it darkens slightly and loses its raw taste.
- Pour in the white wine and use a wooden spoon to scrape up every browned bit from the bottom of the pot — this is where flavor lives. Let the wine reduce by half, about 3 minutes.
- Add the chicken or veal stock. The liquid should reach roughly halfway up the sides of the shanks, not cover them completely. If you have more stock than needed, save it — you may need to top up during braising.
- Return the seared shanks to the pot, nestling them into the liquid. Add the thyme sprigs and bay leaf. Bring the liquid to a gentle simmer over medium heat — do not boil.
- Cover the Dutch oven tightly with its lid (or parchment paper and foil if your lid doesn’t seal well) and transfer to a 325°F (165°C) oven.
- Braise for 1½ to 2 hours, turning the shanks once at the halfway point (after 45 minutes). Check at 45 minutes — if the liquid level has dropped significantly, add a splash of stock to maintain the halfway mark.
- The veal is done when a fork slides into the thickest part of the meat with absolutely no resistance and the marrow inside the bone looks gelatinous and slightly translucent. If the meat still feels firm, return to the oven for 15-minute increments.
- While the osso buco finishes cooking, prepare the gremolata: mix the finely minced lemon zest, minced raw garlic, and chopped flat-leaf parsley together in a small bowl. Do not cook these ingredients — they must stay raw.
- Remove the osso buco from the oven. Discard the kitchen twine from each shank by cutting it away with a knife.
- Spoon the gremolata evenly over the shanks in the pot. Return to the oven for 5 minutes — just enough to warm the gremolata without cooking it. The gremolata should remain bright and slightly raw-tasting.
- To serve, place each veal shank on a portion of saffron risotto, polenta, or mashed potatoes. Spoon the braising sauce generously over the shanks and the starch. Provide a small marrow spoon or narrow teaspoon so guests can scoop the melted marrow from the center of the bone.
Notes
How to Make Osso Buco
Step 1 — Season, dredge, and brown the shanks

Pat the veal shanks completely dry with paper towels and season generously with salt and pepper on all surfaces. Dredge lightly in flour, shaking off the excess — the flour helps the exterior brown and thickens the braising liquid slightly as it cooks. Heat olive oil in a Dutch oven over high heat until shimmering. Add the shanks without crowding (work in two batches for 4 shanks) and sear 3 to 4 minutes per side, turning once, until deeply browned on both cut faces. Don’t rush this — pale, gray veal shanks produce a weak braising liquid. Remove and set aside.
Step 2 — Build the soffritto

Reduce heat to medium. Add a little more oil if needed, then add the diced onion, carrot, and celery. Cook for 5 to 7 minutes, stirring occasionally, until the vegetables are softened and beginning to color at the edges. Add the garlic and cook 1 more minute. Add the tomato paste (just a tablespoon — for color and depth, not a tomato sauce) and stir into the vegetables for 1 minute until the paste darkens slightly.
Step 3 — Deglaze and braise

Pour in the white wine and scrape up every browned bit from the bottom of the pot. Let the wine reduce by half, about 3 minutes. Add the chicken or veal stock — the liquid should reach roughly halfway up the sides of the shanks, not cover them. Return the shanks to the pot, add the thyme and bay leaf, and bring to a gentle simmer. Cover tightly and transfer to a 325°F (165°C) oven. Braise for 1½ to 2 hours, turning the shanks once at the halfway point. The veal is done when a fork slides into the thickest part of the meat with no resistance and the marrow looks gelatinous.
Step 4 — Gremolata and serve

Mix the lemon zest, minced raw garlic, and chopped flat-leaf parsley together in a small bowl. Remove the osso buco from the oven, discard the twine, and spoon the gremolata over the shanks. Return to the oven for 5 minutes — just enough to warm the gremolata without cooking it. Plate each shank on a portion of risotto, polenta, or mashed potatoes and spoon the braising sauce generously over everything. Provide a small spoon for the marrow.
Can You Use Beef Shanks Instead of Veal?
Yes — beef osso buco is a legitimate and common adaptation. Cross-cut beef shanks work with the same technique but require significantly longer braising: 2½ to 3 hours in the oven versus 1½ to 2 for veal. The flavor is richer and the texture slightly firmer even when fully tender. Use beef stock instead of chicken stock to match the weight of the beef. The gremolata works equally well with beef. If you’re cooking for people who don’t eat veal for ethical reasons, beef shanks are the direct substitute.
Cook’s Notes and Tips
- Tie the shanks: Kitchen twine wrapped around the circumference of each shank holds the meat to the bone during the long braise. Without it, the meat pulls away from the bone as it cooks, which loses the presentation and makes the shank harder to plate.
- Liquid level is critical: The braising liquid should reach halfway up the shanks — not cover them. Too much liquid and the meat boils, producing a watery sauce and tougher texture. Too little and the top dries out. Check after 45 minutes and add a splash of stock if needed.
- Don’t rush the sear: 3 to 4 minutes per side on high heat. The crust you build here is where most of the dish’s flavor comes from. A pale sear produces a pale, flat braising sauce.
- Gremolata stays raw: The lemon zest and raw garlic lose their sharpness quickly. Add the gremolata only in the last 5 minutes, not before, and don’t cook it long. It should taste bright and almost surprising against the deep braised meat.
- Make it a day ahead: Osso buco genuinely improves overnight. The collagen continues to dissolve as it cools and the flavors deepen. Reheat covered in a 325°F (165°C) oven for 25 minutes.
How to Serve Osso Buco
The traditional Milanese pairing is saffron risotto (risotto alla milanese) — yellow, rich, and slightly sweet from the saffron — which complements the deep savory sauce beautifully. Polenta is the second classic pairing, especially in winter. Creamy mashed potatoes or a simple boiled potato work if you want something quicker. Provide a marrow spoon or a narrow teaspoon so guests can scoop the marrow from the bone — it has a rich, buttery, gelatinous texture that’s the best part of the shank. Finish with a glass of Barolo or Barbera d’Asti.
Substitutions and Variations
A “white” osso buco (bianco) omits the tomato paste and uses only white wine and stock — cleaner, more delicate. A pork shank version follows the same technique with similar braising times to veal. The vegetables in the soffritto can include fennel or leek in place of celery for a slightly different profile. The gremolata can be made with orange zest instead of lemon for a sweeter, less sharp finish — a Sicilian variation.
Make Ahead and Reheating
Make up to 2 days ahead. Cool completely in the braising liquid, refrigerate covered. The fat will solidify on top — skim it off before reheating for a cleaner sauce. Reheat covered in a 325°F (165°C) oven for 25 to 30 minutes, or on the stovetop over low heat. Add the gremolata after reheating, not before.
Storage and Freezing
Refrigerate in the braising liquid for up to 3 days. Freeze for up to 3 months — freeze with the sauce, which protects the meat from freezer burn. Thaw overnight in the refrigerator and reheat as above. The texture holds remarkably well through freezing and reheating, better than most braises.
Frequently Asked Questions
Can I use beef shanks instead of veal for osso buco?
Yes. Beef shanks work with the same technique and produce a richer, more robust dish. The key difference is braising time: beef requires 2½ to 3 hours versus 1½ to 2 for veal. Use beef stock instead of chicken stock to match the weight of the meat. The gremolata works the same way. The result is a darker, more deeply flavored braise that’s less delicate than the classic veal version but equally satisfying.
What is gremolata and why is it served with osso buco?
Gremolata is a condiment made from raw lemon zest, minced garlic, and flat-leaf parsley mixed together. It’s added to osso buco in the final minutes of cooking specifically because its bright, sharp flavors cut through the richness of the braised veal and the fat in the marrow. It’s not optional garnish — in the traditional Milanese recipe, it’s a functional component that balances the dish. Without it, osso buco tastes heavier and one-dimensional.
How long does osso buco take to cook?
Veal shanks take 1½ to 2 hours of covered braising in a 325°F (165°C) oven after the initial searing and soffritto building. Total time including prep is about 2 hours 15 minutes. Beef shanks take 2½ to 3 hours of braising — total about 3 hours 30 minutes. The dish is ready when a fork slides into the thickest part of the meat with zero resistance and the marrow inside the bone looks gelatinous and slightly translucent.
Can osso buco be made ahead?
Yes — it actually improves significantly when made 1 to 2 days ahead. The collagen in the braising liquid continues to dissolve as it cools, producing a more gelatinous, deeply flavored sauce. Refrigerate the shanks in the braising liquid, skim the solidified fat from the top before reheating, then warm covered in a 325°F (165°C) oven for 25 to 30 minutes. Add fresh gremolata after reheating, not before.











Leave a Reply