Print

Perfect Osso Buco Milanese Recipe with Easy Saffron Risotto Guide

osso buco milanese - featured image

A comforting and flavorful Milanese classic featuring slow-braised veal shanks paired with creamy saffron risotto, perfect for cozy dinners and special occasions.

Ingredients

Scale
  • 4 veal shanks (about 1.5 to 2 inches thick, 34 lbs / 1.41.8 kg total)
  • Salt and freshly ground black pepper
  • ½ cup all-purpose flour (60g)
  • 3 tablespoons olive oil (extra virgin recommended)
  • 2 tablespoons unsalted butter
  • 1 large onion, finely chopped
  • 2 celery stalks, finely chopped
  • 2 carrots, finely chopped
  • 4 cloves garlic, minced
  • 1 cup dry white wine (240 ml / 8 fl oz)
  • 1 ½ cups beef or veal broth (360 ml / 12 fl oz)
  • 1 can (14 oz / 400g) diced tomatoes
  • 2 teaspoons fresh thyme leaves or 1 teaspoon dried thyme
  • 2 bay leaves
  • For the Gremolata:
  • 1 lemon, zest only
  • 3 tablespoons fresh flat-leaf parsley, finely chopped
  • 1 garlic clove, minced
  • For the Saffron Risotto:
  • 1 ½ cups Arborio rice (300g)
  • 4 cups chicken or vegetable broth (950 ml / 32 fl oz), kept warm
  • 1 small onion, finely chopped
  • 2 tablespoons unsalted butter
  • 1 tablespoon olive oil
  • Pinch of saffron threads (about 0.1g), soaked in 2 tablespoons warm broth
  • ½ cup dry white wine (120 ml / 4 fl oz)
  • ½ cup freshly grated Parmesan cheese (50g)
  • Salt and pepper to taste

Instructions

  1. Pat the veal shanks dry with paper towels. Season both sides generously with salt and pepper, then dredge lightly in flour, shaking off any excess. (About 10 minutes)
  2. Heat olive oil and butter over medium-high heat in a Dutch oven. Once shimmering, add the veal shanks and brown on all sides, about 4-5 minutes per side. Transfer the shanks to a plate and set aside. (10-12 minutes)
  3. Lower heat to medium. Add chopped onion, celery, carrots, and garlic to the pot. Cook gently until softened and fragrant, about 7 minutes, stirring often.
  4. Pour in the white wine, scraping up browned bits from the bottom. Let it simmer until reduced by half, about 5 minutes. Add diced tomatoes, broth, thyme, and bay leaves. Stir to combine.
  5. Nestle the shanks back into the pot, spooning some sauce over the top. The liquid should come halfway up the meat; add more broth if needed. Bring to a gentle simmer.
  6. Cover and cook on low heat for about 1 hour 45 minutes to 2 hours, turning the shanks halfway through. The meat should be fork-tender and nearly falling off the bone. (If using an oven, set to 325°F / 160°C.)
  7. While the meat braises, mix lemon zest, parsley, and garlic in a small bowl to make the gremolata. Set aside.
  8. Warm broth in a saucepan. Heat olive oil and 1 tablespoon butter in a large pan over medium heat. Add onion and cook until translucent, about 5 minutes.
  9. Stir in Arborio rice, coating grains with oil and butter. Toast lightly for 1-2 minutes until edges turn translucent.
  10. Pour in white wine and cook, stirring, until fully absorbed.
  11. Add saffron soaked in warm broth. Add broth ladle by ladle, stirring constantly and letting liquid absorb before adding more. Cook about 18-20 minutes until risotto is creamy with a slight bite.
  12. Stir in remaining butter and Parmesan cheese. Season with salt and pepper. Keep warm until ready to serve.
  13. Serve osso buco on plates, spoon sauce over, sprinkle gremolata on top, and serve alongside saffron risotto. Enjoy immediately!

Notes

Keep the braise liquid at a gentle simmer to avoid toughening the meat. Brown shanks in batches to avoid overcrowding. Soak saffron in warm broth before adding to risotto for best flavor and color. Gremolata adds a fresh, vibrant finish and can be made extra to sprinkle liberally. Risotto should be stirred gently and broth added gradually for creamy texture.

Nutrition

Keywords: osso buco, Milanese, saffron risotto, veal shanks, Italian recipe, slow braised, gremolata, comfort food