
Braised veal shanks in white wine, tomatoes and gremolata, served on saffron risotto — Milan's most celebrated dish.
Osso buco (meaning 'hole in the bone' in Italian) is one of Milan's greatest culinary contributions — veal shanks braised slowly in white wine and tomatoes until the meat falls from the bone and the marrow in the centre becomes impossibly rich. The dish is inseparable from its traditional accompaniment: risotto alla milanese, the saffron-perfumed risotto that is its equal in importance. The defining final touch is gremolata — a mixture of lemon zest, garlic and parsley scattered over the top at the last moment, which cuts through the richness with its bright, raw freshness.
Serves 4
Dust veal shanks with flour. Heat oil and butter in a heavy Dutch oven. Brown shanks well on all sides. Remove.
Soften onion, carrot and celery in the same pot, 8 minutes. Add garlic and cook 1 minute. Pour in wine; let it bubble and reduce by half. Add tomatoes and stock. Return shanks, ensuring they are at least half-submerged.
Bring to a simmer. Cover and braise in the oven at 160°C for 1.5–2 hours until meat is very tender and pulling away from the bone.
Tying the shank with string prevents it falling apart in the braise.
Mix lemon zest, garlic and parsley together.
Remove shanks. Reduce sauce if needed. Remove kitchen string. Serve shanks on saffron risotto. Spoon sauce over. Scatter gremolata. Encourage diners to eat the marrow from the bone.
Tying the shank with string prevents it falling apart in the braise
Gremolata must be added at the last moment — don't cook it
The marrow in the bone is a delicacy — provide small spoons for scooping it out
Taste and adjust salt at the very end — flavors concentrate as liquids reduce, and a final pinch of flaky salt sharpens the whole dish.
The older 'in bianco' version omits tomatoes — use only white wine and stock for a more delicate result.
Lamb shanks respond beautifully to this same braising treatment.
Vegetarian: swap the protein for roasted king oyster mushrooms, smoked tofu or cooked chickpeas — adjust seasoning slightly upward to compensate.
Spicier: add a finely chopped fresh chile or a teaspoon of crushed Aleppo/Urfa pepper to the aromatics for warm, layered heat instead of a single sharp hit.
Improves greatly the next day. Refrigerate up to 4 days. Freeze up to 3 months.
Osso buco alla milanese dates to 19th-century Milanese cooking. It is inextricably linked to its saffron risotto accompaniment — the two dishes are a classic pairing that has never been bettered.
A dry, unoaked or lightly oaked white wine — Pinot Grigio, Soave or Verdicchio. Never cook with wine you wouldn't drink.
Yes — most of the components can be prepared up to a day in advance and refrigerated separately. Reheat gently and assemble just before serving so textures stay distinct.
Stay close to the role each ingredient plays: swap aromatics for similar ones (shallot for onion, lime for lemon), and keep the fat-acid-salt balance intact. Spice blends can usually be approximated with what's in the cupboard.
Authenticity sits on a spectrum — what matters more is honoring the technique and balance of flavors. If the dish tastes harmonious and respects how cooks in its home region would build it, you're on solid ground.
Per serving · 4 servings total
Ask our AI cooking assistant anything about this recipe — substitutions, techniques, scaling.
Chat with AI Chef →This recipe is featured in the following curated guides:
Join the conversation
Sign in to leave a comment and save your favourite recipes