Textual Chef Textual Chef

Osso Buco alla Milanese

Braised veal shanks slow-cooked in white wine and broth until the meat falls off the bone, served with bright gremolata and saffron risotto. Plan ahead: the braise takes about 2 hours.

150 minHardServes 4640 cal/serving

ItalianDinnerStovetop and OvenStandardLow-SodiumCorn-Free

Ingredients

  • 4 pieces veal shanks (about 1.5 inches thick)
  • 2 tsp kosher salt
  • 1 tsp black pepper, freshly ground
  • 1/2 cup all-purpose flour
  • 4 tbsp extra-virgin olive oil
  • 1 yellow onion, finely diced
  • 2 carrots, finely diced
  • 2 celery stalks, finely diced
  • 4 garlic cloves, minced
  • 2 tbsp tomato paste
  • 1 cup dry white wine
  • 2 cups low-sodium chicken broth
  • 1 cup crushed tomatoes
  • 2 bay leaves
  • 4 fresh thyme sprigs
  • 1 lemon, zested
  • 1/4 cup fresh flat-leaf parsley, finely chopped
  • 1 garlic clove (for gremolata), minced

Instructions

  1. 1

    Preheat oven to 325°F (165°C). Pat 4 pieces veal shanks (about 1.5 inches thick) dry with paper towels and season generously on all sides with 2 tsp kosher salt and 1 tsp freshly ground black pepper. Dredge in 1/2 cup all-purpose flour, shaking off excess.

  2. 2

    Heat 4 tbsp extra-virgin olive oil in a large Dutch oven over medium-high heat. Sear the shanks in batches for 3-4 minutes per side until deeply browned. Transfer to a plate.

  3. 3

    Reduce heat to medium. Add 1 finely diced yellow onion, 2 finely diced carrots, and 2 finely diced celery stalks to the pot. Cook, stirring, for 8 minutes until softened. Add 4 minced garlic cloves and 2 tbsp tomato paste and cook 2 minutes more.

  4. 4

    Pour in 1 cup dry white wine and scrape up any browned bits from the bottom. Simmer until the wine reduces by half, about 3 minutes.

  5. 5

    Add 2 cups low-sodium chicken broth and 1 cup crushed tomatoes. Return the shanks to the pot, nestling them upright so the marrow stays in the bone. Tuck in 2 bay leaves and 4 fresh thyme sprigs.

  6. 6

    Bring to a simmer, cover with a lid, and transfer to the oven. Braise for 1 hour 45 minutes to 2 hours, until the meat is very tender and pulls away from the bone. Check the internal temperature - it should reach at least 160°F (71°C) and the meat should be fork-tender.

  7. 7

    While the braise finishes, make the gremolata: combine 1/4 cup finely chopped fresh flat-leaf parsley, zested lemon, and 1 minced garlic clove (for gremolata) in a small bowl.

  8. 8

    Remove bay leaves and thyme from the pot. Taste braising liquid and adjust seasoning. Serve each shank over saffron risotto or polenta, spooning sauce over the top and finishing with gremolata.

Questions

Can I make Osso Buco alla Milanese gluten-free?

Yes. The gluten in this entry is 1/2 cup all-purpose flour. Swap the flour for a 1-to-1 gluten-free baking blend (where it only thickens a sauce, half as much cornstarch also works). Everything else proceeds as written.

How long does Osso Buco alla Milanese keep?

Refrigerate leftovers within two hours and eat them within three days. Reheat covered in a 300 F oven until warmed through. It also freezes well for up to three months.

Can I halve or double Osso Buco alla Milanese?

Yes. As written it serves 4. Every ingredient in this entry carries precomputed half and double quantities, and the app's batch dial rewrites them inside each step. Doubled, split it across two pans and rotate them halfway; one crowded pan bakes unevenly.

Serve it with

Cook this free in the app

Textual Chef is 4,512 plain-text recipes, free to read and free to cook from. No account, no paywall, no ads, no life stories. Open this one in the app and each quantity sits inside the step that uses it, so you read once and cook.

Every recipe is curated or public-domain sourced, written to one template and checked before it publishes. Nothing here is a scraped blog post.

Cook this free in the appNo download needed. It opens in your browser. The kitchen tools (planner, shopping list, pantry, import) are $5.33 a month billed annually; the first 30 days are free.