Osso buco is the kind of dish that wins you over the moment it hits the table—tender veal shanks, a rich, aromatic sauce, and a bright, zesty gremolata to wake everything up. It’s a classic from Milan that feels special but is surprisingly simple to make. You don’t need fancy tricks, just time, good ingredients, and a steady simmer.
This is the kind of meal you’ll want to linger over with a glass of wine and warm bread. Let’s make it the Italian way—honest, hearty, and full of flavor.
Contents
Why This Recipe Works

– Slow braise, big flavor: Veal shanks are full of connective tissue and marrow, which melt into the sauce during a long, gentle braise. The result is fork-tender meat and a silky, deeply flavored gravy. – Classic aromatics: The Italian soffritto—onion, carrot, and celery—builds a savory base that complements the meat without overpowering it. – Wine and stock combo: Dry white wine adds brightness while beef or veal stock gives body.
Together, they balance richness with acidity. – Tomato restraint: A little tomato paste boosts umami without turning the dish into a tomato stew. This keeps the flavors true to the Milanese style. – Gremolata finish: Lemon zest, parsley, and garlic cut through the richness and add a fresh, aromatic lift just before serving.
Shopping List
- Veal shanks (osso buco), 4 pieces (about 1 1/2 to 2 inches thick, cross-cut, bone-in)
- All-purpose flour (for dredging)
- Kosher salt and freshly ground black pepper
- Olive oil
- Unsalted butter
- Yellow onion, 1 large (finely chopped)
- Carrots, 2 medium (finely chopped)
- Celery stalks, 2 (finely chopped)
- Garlic, 6 cloves (3 for braise, 3 for gremolata)
- Tomato paste, 2 tablespoons
- Dry white wine, 1 cup
- Beef or veal stock, 2 to 3 cups (enough to come halfway up the shanks)
- Bay leaves, 2
- Fresh thyme, 4 sprigs (or 1 teaspoon dried)
- Fresh parsley, 1 small bunch
- Lemon, 1 large (for zest)
- Optional: anchovy fillet, 1 (for gremolata, adds depth)
- Optional: canned whole peeled tomatoes, 1/2 cup (crushed by hand, for a slightly saucier version)
- Optional sides: saffron risotto (risotto alla milanese), creamy polenta, or crusty bread
How to Make It

- Prep the shanks: Pat the veal shanks dry. Tie each piece with kitchen twine around the middle to help them keep their shape.Season generously with salt and pepper, then lightly dredge in flour, shaking off excess.
- Brown for flavor: Heat a heavy Dutch oven over medium-high. Add olive oil and a knob of butter. Sear shanks until deeply browned on both sides, about 4–5 minutes per side.Remove to a plate.
- Build the base: Lower heat to medium. Add a bit more oil if needed. Sauté onion, carrot, and celery with a pinch of salt until soft and lightly golden, 8–10 minutes.Stir in 3 minced garlic cloves and cook 30 seconds.
- Tomato and fond: Add tomato paste and cook until brick red and caramelized, 1–2 minutes. This concentrates the flavor and sweetens the paste.
- Deglaze: Pour in the white wine. Scrape up brown bits from the bottom.Simmer until the wine reduces by half, 2–3 minutes.
- Liquids and herbs: Return shanks and any juices to the pot. Add stock until it comes halfway up the sides of the meat. Drop in bay leaves and thyme.If using tomatoes, add them now.
- Braise gently: Bring to a soft simmer. Cover and cook on the stovetop over low heat, or transfer to a 325°F (165°C) oven. Braise 1 1/2 to 2 hours, turning shanks once, until the meat is very tender but not falling apart.
- Skim and adjust: Remove shanks to a warm plate.Skim fat from the sauce. Simmer the sauce uncovered 5–10 minutes to thicken slightly. Taste and adjust salt and pepper.
- Make gremolata: Finely chop parsley and zest the lemon.Mince 3 garlic cloves. Combine with a pinch of salt. For an umami boost, mash in a minced anchovy.
The mixture should be fragrant and bright.
- Finish and serve: Return shanks to the pot to warm through. Spoon sauce over, then sprinkle generously with gremolata right before serving. Serve with risotto alla milanese, polenta, or good bread.
Keeping It Fresh
– Make ahead: Osso buco tastes even better the next day as the flavors meld.
Cool completely, cover, and refrigerate for up to 3 days. – Reheating: Warm gently on the stovetop over low heat with a splash of stock or water until hot. Add fresh gremolata just before serving to keep the flavors bright. – Freezing: Freeze the braise (without gremolata) for up to 2 months. Thaw overnight in the fridge and reheat slowly. – Storage tip: Store gremolata separately in an airtight container for up to 2 days, or make it fresh for best flavor.

Health Benefits
– Protein and minerals: Veal provides high-quality protein, iron, zinc, and B vitamins.
The bone marrow adds collagen and micronutrients that enrich the sauce. – Aromatic vegetables: Onion, carrot, and celery bring fiber and protective plant compounds while keeping the dish balanced. – Olive oil and herbs: Olive oil offers heart-friendly fats, and parsley and garlic supply antioxidants. Lemon zest adds vitamin C and brightness without extra sodium. – Portion control: This is a rich dish. Pair with a vegetable side or a modest portion of risotto or polenta to keep the meal satisfying and balanced.
What Not to Do
– Don’t rush the sear: Pale meat means missed flavor.
Get a deep golden crust before braising. – Don’t boil the braise: A hard boil toughens meat. Keep it at a gentle simmer—just a few lazy bubbles. – Don’t drown the shanks: Liquid should come halfway up the meat, not cover it. This concentrates flavor and prevents a watery sauce. – Don’t skip the gremolata: It’s essential for contrast.
Without it, the dish can feel heavy. – Don’t over-thicken with flour: Light dredging is enough. Too much flour clouds the sauce and can taste pasty.
Recipe Variations
– Classic Milanese with saffron risotto: Serve over risotto alla milanese, perfumed with saffron. It’s the traditional pairing and incredibly comforting. – Tomato-forward style: Add 1 cup crushed tomatoes for a saucier, southern-leaning version.
Simmer a bit longer to reduce. – Beef shank swap: If veal is hard to find, use cross-cut beef shanks. Increase braising time by 30–45 minutes; beef is sturdier and needs longer. – White wine only: For a lighter profile, use all white wine and top up with water instead of stock. Reduce carefully to avoid a thin sauce. – Herb twist: Add a strip of orange peel and a few sage leaves for a slightly different, aromatic note. – Gremolata extras: Stir in crushed toasted pistachios or a pinch of red pepper flakes for gentle heat and texture.
FAQ
Can I make osso buco in a slow cooker?
Yes.
Brown the shanks and sauté the vegetables on the stovetop first. Transfer everything to the slow cooker with wine and stock, then cook on low for 7–8 hours until tender. Thicken the sauce on the stovetop if needed and finish with fresh gremolata.
What cut of meat is best for osso buco?
Cross-cut veal shanks, about 1 1/2 to 2 inches thick, are traditional.
Look for pieces with a good-sized marrow bone and plenty of connective tissue for the best texture and flavor.
Do I have to use veal?
No. Beef shanks, lamb shanks, or even pork shanks work, though the flavor profile changes. Beef is the most common substitute and just needs a longer braise.
Which wine should I use?
Choose a dry white wine like Pinot Grigio, Soave, or Sauvignon Blanc.
Avoid sweet wines. Use something you’d happily drink, as it concentrates during cooking.
How do I keep the shanks from falling apart?
Tie each shank with kitchen twine to hold it together. Handle gently when turning, and keep the braise at a low simmer, not a boil.
Can I make this gluten-free?
Yes.
Skip the flour or use a gluten-free flour blend for dredging. The sauce will still thicken nicely from reduction and gelatin.
What should I serve with osso buco?
Traditional sides are risotto alla milanese or soft polenta. Mashed potatoes or buttered egg noodles also work well to catch the sauce.
How do I know when it’s done?
The meat should be very tender and pull away from the bone with gentle pressure from a fork, but still hold together.
Expect 1 1/2 to 2 hours for veal, longer for beef.
Wrapping Up
Osso buco is proof that simple techniques and patient cooking create unforgettable meals. With a steady braise, a balanced sauce, and that bright pop of gremolata, you get comfort and elegance in one dish. Serve it to friends, pour a good wine, and let the table go quiet for a minute—that’s how you know it worked.
Buon appetito.

