Jump to Recipe
Ossobuco alla Milanese is a braise, and braising is about patience. The veal shank goes into the pot with white wine, broth, and a soffritto of onion, celery, and carrot. Two hours later, the collagen has melted, the sauce has thickened, and the marrow in the bone is trembling.
The gremolata, a raw mix of lemon zest, garlic, and flat-leaf parsley, is not optional. It goes on at the very end and changes the whole character of the dish. Without it, you have a good braise. With it, you have ossobuco.
This is not a weeknight recipe in the sense that you can rush it. But it is genuinely hands-off once the braising starts. You can make it a day ahead, and it will be better for it.
Traditionally served with saffron risotto alla Milanese, though creamy polenta works just as well if you want something simpler on a weeknight, or pair it after a light starter like Italian lemon veal cutlets for a veal-forward menu.

Why You’ll Love This Recipe
- The braising liquid becomes a rich, ready-made sauce
- Gremolata adds brightness without extra cooking time
- Tastes better made a day ahead, great for guests
- One heavy pot, minimal hands-on work after searing
Ingredient Notes
- Veal shanks (ossobuco cuts): Ask the butcher to cut them 4 to 5 cm thick and tie kitchen twine around each one to hold the shape during braising. Beef shank cross-cuts work as a substitute but need an extra 30-45 minutes of cooking time.
- Dry white wine: Use a wine you’d drink, nothing sweet. A Pinot Grigio or Soave works well. Avoid oaked Chardonnay, which turns slightly bitter when reduced.
- Homemade or low-sodium veal or chicken broth: Veal broth gives the deepest result, but a good chicken broth is a practical substitute. Avoid carton beef broth here, it overpowers the white wine character of the sauce.
- Canned whole peeled tomatoes: Some recipes omit tomatoes entirely for a purer bianco version. If you include them, use just two or three tablespoons of crushed pulp, not a full can, so the sauce stays pale and the wine comes through.
- Lemon zest for gremolata: Use an unwaxed lemon and zest it just before serving so the oils are fresh. Bottled lemon juice is not a substitute here.
- Flat-leaf parsley for gremolata: Curly parsley is a workable swap but has less flavor. Chop finely and mix with the zest and garlic right before you spoon it over the shanks.

Ossobuco alla Milanese
Ingredients
Method
- Pat the veal shanks dry with paper towels. Season both sides with salt and pepper, then dust lightly with flour and shake off any excess.
- Tie kitchen twine around the circumference of each shank to keep the meat in place during braising.
- Heat the olive oil and butter in a Dutch oven over medium-high heat until the butter foam subsides and the fat shimmers.
- Add two shanks in a single layer and sear for 4 minutes without moving them, until deeply browned on the underside. Flip and sear the other side for 3 minutes. Transfer to a plate and repeat with the remaining shanks.
- Reduce the heat to medium. Add the onion, celery, and carrot to the same pot. Cook, stirring occasionally, for 8 to 10 minutes until the vegetables are soft and pale gold.
- Add the garlic and cook for 1 minute until fragrant.
- Pour in the white wine, scraping the browned bits from the bottom of the pot with a wooden spoon. Let the wine bubble and reduce by half, about 4 minutes.
- Add the warm broth, crushed tomatoes (if using), bay leaves, and thyme. Stir to combine.
- Nestle the seared shanks back into the pot in a single layer. The liquid should come about halfway up the sides of the shanks. Add more broth if needed.
- Bring to a gentle simmer, then reduce heat to low. Cover with the lid slightly ajar and braise for 1 hour 45 minutes to 2 hours, turning the shanks once halfway through, until the meat is very tender and pulls away from the bone easily.
- In the last 20 minutes, remove the lid fully to allow the sauce to reduce to a light coating consistency.
- Combine the chopped parsley, lemon zest, and minced garlic in a small bowl. Mix well.
- Remove the bay leaves and thyme sprig. Taste the sauce and adjust salt if needed.
- Remove the kitchen twine from the shanks. Let the pot rest off the heat, covered, for 10 minutes.
- Plate each shank over risotto alla Milanese or soft polenta. Spoon braising sauce over the top and finish each portion with a generous pinch of gremolata.
Notes

Tips for Success
- Pat the veal shanks completely dry before flouring them, so you get a real sear, not a steam.
- Sear the shanks in batches over medium-high heat, allowing 4 minutes per side until deep brown before adding any liquid.
- Keep the braise at a very gentle simmer, around 90 C / 195 F, so the meat stays tender rather than stringy.
- Check liquid level every 45 minutes and add a splash of warm broth if the pot looks dry below the halfway mark of the shanks.
- Rest the finished shanks in the covered pot for 10 minutes off heat before plating, so the sauce clings rather than runs.
Variations
- Bianco version: omit tomatoes entirely and add a strip of lemon peel to the braising liquid for a cleaner, paler sauce.
- Slow cooker method: sear the shanks on the stovetop first, then braise on LOW for 7 to 8 hours in the slow cooker.
- Serve over creamy saffron polenta instead of risotto alla Milanese for a simpler weeknight pairing.
Storage and Reheating
Store leftover shanks with their braising sauce in an airtight container in the fridge for up to 3 days. The collagen firms up overnight, which actually makes the sauce richer when reheated.
Reheat gently in a covered saucepan over low heat with a small splash of broth or water, around 15 minutes until the shank is hot through. Avoid high heat or the meat can tighten.
For freezing, cool the shanks fully in the sauce before transferring to freezer containers. Freeze for up to 2 months. Thaw in the fridge overnight and reheat as above. Do not freeze the gremolata, make it fresh when serving.
Serving Suggestions
The classic pairing is Risotto alla Milanese, the saffron-scented risotto that shares the same regional origin as this Piedmontese gnocchi with Fontina and cream in the broader northern Italian tradition. The starchy, lightly fatty risotto absorbs the braising sauce and balances the gremolata well.
Creamy soft polenta cooked with a little Parmesan is a faster and equally honest companion. Spoon the shank and sauce directly over the polenta and finish with the gremolata at the table.
A simple radicchio or bitter green salad dressed with red wine vinegar works well on the side. The bitterness reads as a clean contrast to the richness of the braised meat.

FAQ
Why is my ossobuco sauce thin and watery instead of glossy?
The lid was probably on too tight, which prevented evaporation. For the last 20 to 30 minutes, braise with the lid slightly ajar to let the liquid reduce to a coating consistency. If it’s already done and still thin, remove the shanks and simmer the sauce uncovered for a few minutes.
Can I use beef shank instead of veal for ossobuco alla Milanese?
You can, but the result is noticeably stronger in flavor and less delicate. Beef shank also needs an extra 30 to 45 minutes of braising time to reach the same fork-tender texture. It’s a practical swap, just not the traditional Milanese version.
Can I braise the veal shanks the day before serving and reheat them?
Yes, and it’s one of the best things about this dish. The collagen firms the sauce into a loose gel overnight, and reheating slowly in the pot produces a richer result than serving it freshly made. Just add the gremolata fresh when you plate.
What wine should I drink with ossobuco alla Milanese?
A medium-bodied northern Italian red works best. Barbera d’Asti, Langhe Rosso, or a lighter Nebbiolo all have enough acidity to cut through the braised collagen without overpowering the gremolata. Avoid full tannic reds like Amarone, which fight the dish.
Is ossobuco alla Milanese gluten-free?
The traditional recipe uses a light flour dusting on the shanks before searing, which contains gluten. To make it gluten-free, substitute rice flour or fine cornstarch in the same quantity. Everything else in the dish is naturally gluten-free.
What is the difference between ossobuco alla Milanese and ossobuco in bianco?
The Milanese version typically includes a small amount of tomato in the braising liquid and is always finished with gremolata. The bianco version omits the tomato entirely and often adds a strip of lemon peel to the pot instead, producing a paler, more delicate sauce.
