Osso Buco Veal Shanks

Featured in: Comfort Food

Osso Buco is a Milanese dish highlighting tender veal shanks braised slowly in a tomato and vegetable sauce. The veal is first browned, then cooked with aromatic vegetables, white wine, and herbs until fork-tender. Finished with a bright parsley, garlic, and lemon zest gremolata, this dish offers a comforting yet elegant flavor profile. Ideal served with saffron risotto, polenta, or creamy mashed potatoes, its depth comes from careful layering of flavors and slow cooking to ensure melt-in-the-mouth texture.

Updated on Sat, 27 Dec 2025 16:36:00 GMT
Tender Osso Buco served with vibrant gremolata, imagine the savory aroma from this classic Italian dish. Pin
Tender Osso Buco served with vibrant gremolata, imagine the savory aroma from this classic Italian dish. | garlicgroove.com

The first time I made osso buco, I nearly ruined it by rushing the browning step. My uncle watched me from across the kitchen, saying nothing, just waiting to see if I'd remember what he'd shown me years before. When I finally slowed down, gave those veal shanks their proper time in the pan to develop that caramelized crust, everything changed. That golden-brown foundation became the soul of the dish, and the kitchen filled with a smell so rich it stopped conversations mid-sentence. Now, whenever I braise these tender shanks, I think of that quiet moment and how patience transforms meat and vegetables into something deeply elegant.

I served this to my partner on a Sunday when we both needed comfort food that felt special. The apartment smelled incredible by the time we sat down, and watching them take that first bite, seeing their eyes close slightly as the flavors settled in, reminded me why slow cooking matters. It's not just about feeding someone; it's about showing them you spent hours thinking about their happiness.

Ingredients

  • Veal shanks (4, about 350 g each, cross-cut, bone-in): These are the star, and the bone-in cut is non-negotiable because it releases collagen that turns the sauce silky and rich.
  • Salt and freshly ground black pepper: Generosity here matters more than you'd think; season boldly before browning.
  • All-purpose flour (1/3 cup / 40 g): The light dredge creates a delicate crust that helps with browning; use gluten-free flour if you need to.
  • Olive oil and unsalted butter (2 tbsp each): The combination gives you the browning power of oil with the flavor depth of butter.
  • Onion, carrots, celery (1 large onion, 2 carrots, 2 stalks): This aromatic base is traditional for a reason; finely chopping them means they dissolve into the sauce.
  • Garlic (4 cloves, minced): Don't skip the mincing step; larger pieces can turn bitter during the long braise.
  • Dry white wine (1 cup / 240 ml): This cuts the richness and adds acidity that brightens everything; use something you'd drink.
  • Diced tomatoes (1 can / 400 g with juice): The juice is liquid gold for the braising liquid, so never drain it.
  • Beef or veal stock (1 1/2 cups / 360 ml): Homemade is best, but good-quality store-bought works if it's unsalted.
  • Tomato paste (2 tbsp): A concentrate of umami that deepens the sauce without making it taste thin.
  • Bay leaves and dried thyme (2 bay leaves, 1 tsp): These are the quiet herbs that anchor the flavor; don't skip them.
  • Lemon zest (from 1 lemon, divided): Half goes into the braising liquid, half into the gremolata for brightness.
  • Fresh flat-leaf parsley (2 tbsp, finely chopped) and 1 garlic clove: Save these for the gremolata, which you'll finish the dish with just before serving.

Instructions

Prepare and season the veal:
Pat each shank completely dry with paper towels, then season both sides generously with salt and pepper. Dredge lightly in flour, tapping off any excess so you get a thin, even coat.
Sear until golden:
Heat oil and butter in your Dutch oven over medium-high heat until the butter foams. Once it stops foaming, lay the shanks in the pot and resist the urge to move them for 3 to 4 minutes per side; this is where the deep flavor begins.
Build your aromatic base:
Transfer the shanks to a plate, then add the onion, carrots, celery, and garlic to the same pot. Sauté for about 6 minutes, stirring occasionally, until softened and starting to release their sweetness.
Bloom the tomato paste:
Stir in the tomato paste and cook for 1 minute without moving it around too much; this deepens its flavor. Then deglaze by pouring in the white wine, scraping up all those browned bits stuck to the bottom.
Combine braising liquid:
Add the canned tomatoes with their juice, stock, bay leaves, thyme, and half the lemon zest. Give everything a good stir so the flavors start to mingle.
Nestle in the shanks:
Arrange the veal shanks in a single layer, then spoon the sauce over them until mostly covered. Bring to a gentle simmer on the stovetop.
Braise slowly in the oven:
Cover the pot and transfer to a preheated 160°C (325°F) oven for 2 hours, until the veal is fork-tender and the meat pulls easily from the bone. Halfway through, you can give it a gentle stir if you'd like, but it's not necessary.
Prepare the gremolata:
While the shanks are braising, finely chop the parsley and mince the garlic, then combine with the remaining lemon zest. This aromatic finish stays fresh and bright only if made just before serving.
Finish and serve:
Remove the shanks to a platter. If the sauce looks oily, skim the fat with a spoon or use a fat separator. Simmer for a few minutes if you want it thicker, then spoon sauce over the shanks and crown each with a generous pinch of gremolata.
Pin
| garlicgroove.com

What moved me most was when my grandmother ate this dish and told me it tasted like Sunday afternoons from her childhood in Milan. I realized then that some recipes carry memories of places and people, and when you make them with care, you're not just cooking; you're passing forward something sacred.

Why This Dish Became My Comfort Food

Osso buco demands presence. You cannot rush it, and there is something deeply restorative about that constraint in a world that always wants you to move faster. The long braise gives you time to set the table properly, to light a candle, to think about who you're cooking for. By the time those shanks are tender enough to eat with a spoon, you've already created the mood for a meal that matters.

Pairing and Serving

Saffron risotto is the traditional companion, and it's worth making together with this dish because the buttery rice soaks up that silky sauce like it was meant to. Polenta works beautifully too if you want something simpler, and creamy mashed potatoes are never wrong if you're feeding people who need comfort more than ceremony. The key is something starch-based that can cradle the sauce, because that liquid is too precious to leave on the plate.

Adapting and Making It Your Own

You can substitute beef shanks if veal is hard to find or outside your budget; they'll need an extra 30 minutes of braising time, and the flavor will be earthier but still magnificent. Some cooks add a splash of balsamic vinegar in the final minutes, while others swap the white wine for red and get something darker and more intense. The beauty of this recipe is that it's flexible enough to bend to what you have and what you love, while staying fundamentally itself.

  • If dairy bothers you, olive oil alone will brown the shanks just as beautifully.
  • A gluten-free flour works perfectly for the dredging step with no flavor loss.
  • Make this a day or two ahead and reheat gently; the flavors only improve with time.
A close-up of steaming Osso Buco with a rich, flavorful tomato sauce, ideal for a cozy dinner. Pin
A close-up of steaming Osso Buco with a rich, flavorful tomato sauce, ideal for a cozy dinner. | garlicgroove.com

Osso buco teaches you that the best meals are built on patience, good ingredients, and the willingness to spend time in the kitchen for the people you love. Make this once, and you'll understand why it's been a cornerstone of Italian cooking for centuries.

Recipe Questions

What cut of meat is best for Osso Buco?

Veal shanks cut crosswise with bone-in are traditional, providing tender meat and rich marrow flavors.

Can I substitute veal with another meat?

Beef shanks can be used as a substitute, though cooking time may need adjustment to achieve tenderness.

How do I make the gremolata topping?

Mix finely chopped parsley, minced garlic, and lemon zest to create a fresh and zesty finish for the dish.

What side dishes pair well with Osso Buco?

Saffron risotto, creamy mashed potatoes, or polenta complement the rich, braised flavors perfectly.

Is there a gluten-free option for this dish?

Use gluten-free flour for dredging the veal shanks to accommodate gluten sensitivities.

Osso Buco Veal Shanks

Tender veal shanks slowly cooked in a savory tomato-based sauce, finished with zesty gremolata for added flavor.

Prep duration
25 min
Cook duration
135 min
Complete duration
160 min


Complexity Medium

Heritage Italian

Output 4 Portions

Dietary requirements None specified

Components

Veal and Seasoning

01 4 veal shanks, bone-in, cross-cut, approx. 12 oz each
02 Salt, to taste
03 Freshly ground black pepper, to taste
04 1/3 cup all-purpose flour (or gluten-free flour for gluten-free option)

Vegetables

01 2 tbsp olive oil
02 2 tbsp unsalted butter
03 1 large onion, finely chopped
04 2 carrots, diced
05 2 celery stalks, diced
06 4 garlic cloves, minced

Braising Liquid

01 1 cup dry white wine
02 1 can (14 oz) diced tomatoes with juice
03 1 1/2 cups beef or veal stock
04 2 tbsp tomato paste
05 2 bay leaves
06 1 tsp dried thyme
07 Zest of 1 lemon (reserve half for gremolata)

Gremolata

01 2 tbsp fresh flat-leaf parsley, finely chopped
02 1 garlic clove, minced
03 Reserved lemon zest

Directions

Step 01

Prepare and Season Veal Shanks: Pat veal shanks dry and season generously with salt and freshly ground black pepper. Lightly dredge in flour, shaking off excess.

Step 02

Brown the Veal Shanks: Heat olive oil and unsalted butter in a large Dutch oven over medium-high heat. Brown veal shanks on all sides, approximately 3 to 4 minutes per side, then transfer to a plate.

Step 03

Sauté Vegetables: In the same pot, add chopped onion, diced carrots, diced celery, and minced garlic. Sauté until softened, about 6 minutes.

Step 04

Add Tomato Paste and Deglaze: Stir in tomato paste and cook for 1 minute. Deglaze the pot with dry white wine, scraping up any browned bits from the bottom.

Step 05

Combine Braising Ingredients: Add diced tomatoes with juice, beef or veal stock, bay leaves, dried thyme, and half of the lemon zest. Stir to combine.

Step 06

Braise Veal Shanks: Return the veal shanks to the pot in a single layer, spooning sauce over them. Bring to a simmer, cover, and transfer to a preheated oven at 325°F. Braise for 2 hours or until meat is fork-tender.

Step 07

Prepare Gremolata: Meanwhile, mix fresh parsley, minced garlic, and remaining lemon zest to prepare the gremolata garnish.

Step 08

Finish and Serve: Remove veal shanks from the pot onto a serving platter. Skim excess fat from the sauce if necessary and simmer to thicken slightly. Spoon sauce over shanks and sprinkle with gremolata before serving.

Necessary tools

  • Large Dutch oven or heavy ovenproof pot
  • Tongs
  • Chef's knife
  • Cutting board
  • Wooden spoon

Allergy details

Review each ingredient for potential allergens and speak with a healthcare provider if you're uncertain about anything.
  • Contains dairy (butter)
  • Contains gluten (use gluten-free flour for gluten-free option)

Nutrition breakdown (per portion)

These values are provided as estimates only and shouldn't replace professional medical guidance.
  • Energy: 590
  • Fat: 31 g
  • Carbohydrates: 17 g
  • Protein: 54 g