What is Osso Buco?
Osso Buco, translated from Italian as “bone with a hole,” is a traditional Milanese dish consisting of braised veal shanks. This comforting, slow-cooked dish is often paired with Risotto alla Milanese, creating a rich and flavorful meal that has become a symbol of Italian cuisine. The veal shanks are braised in a savory mixture of stock, vegetables, and herbs until the meat becomes tender and falls off the bone, while the risotto, infused with saffron, offers a creamy and aromatic complement. Together, they make for a meal that’s not only hearty but also deeply satisfying and utterly indulgent.

Origin of Osso Buco with Risotto alla Milanese
Osso Buco hails from Milan, Italy, and has long been a staple in Milanese cuisine. The dish’s roots date back to the late 1800s, and it was traditionally a Sunday family meal, typically served during winter months when hearty, warming dishes were most needed. Paired with the creamy, saffron-infused Risotto alla Milanese, this meal embodies the essence of Milanese culinary traditions.
The term “Risotto alla Milanese” specifically refers to a style of risotto made with saffron, which adds not only color but also a delicate, slightly floral flavor to the creamy rice. The pairing of the two dishes—Osso Buco with Risotto alla Milanese—is a celebrated classic, not just for its flavors but also for the way it showcases the versatility of Italian regional cooking.
Ingredients and Quantities
For Osso Buco (Braised Veal Shanks)
| Ingredient | Amount |
|---|---|
| Veal shanks (cut 2–3 inches thick, bone-in) | 4 pieces |
| Salt & pepper | to taste |
| Flour (for dredging) | ½ cup |
| Olive oil + butter | for searing |
| Onion, diced | 1 medium |
| Carrot, diced | 1 |
| Celery, diced | 1 stalk |
| Garlic, minced | 2–3 cloves |
| Tomato paste | 1 tbsp |
| White wine (dry) | 1 cup |
| Beef or veal stock | 2 cups |
| Crushed tomatoes or passata | ½ cup |
| Bay leaf | 1 |
| Fresh thyme or rosemary | 1–2 sprigs |
| Optional: lemon zest for brightness | ½ tsp |
For Risotto alla Milanese (Saffron Risotto)
| Ingredient | Amount |
|---|---|
| Arborio or Carnaroli rice | 1 ½ cups (300 g) |
| Butter | 3 tbsp |
| Onion or shallot, finely chopped | 1 small |
| White wine | ½ cup |
| Chicken or veal broth (warm) | 4–5 cups |
| Saffron threads | pinch (soaked in 2 tbsp warm broth) |
| Parmesan cheese (freshly grated) | ½ cup |
| Salt & pepper | to taste |
Step-by-Step Directions and Preparation Method

For Osso Buco (Braised Veal Shanks)
- Prep & Sear the Shanks
- Pat dry the veal shanks and season well with salt and pepper.
- Dredge the shanks lightly in flour, shaking off any excess.
- Heat a mixture of olive oil and butter in a Dutch oven or heavy pot. Sear the veal shanks on all sides until deeply browned (this step is crucial for developing flavor). Once seared, remove the shanks and set aside.
- Sauté Vegetables
- In the same pot, add the diced onion, carrot, and celery. Cook for 5-6 minutes, stirring occasionally, until softened.
- Add minced garlic and cook for another minute, allowing the garlic to release its fragrance.
- Stir in tomato paste and cook for 1-2 minutes, allowing the tomato paste to caramelize slightly.
- Deglaze & Braise
- Pour in the dry white wine to deglaze the pot, scraping up any brown bits that have stuck to the bottom of the pot (this is packed with flavor).
- Add the beef or veal stock, crushed tomatoes, bay leaf, and thyme (or rosemary). Return the veal shanks to the pot, ensuring the bone side is facing up. The liquid should come about halfway up the sides of the meat.
- Bring the mixture to a simmer, then reduce the heat to low and cover the pot. Braise the veal for 2 hours on the stovetop (or 2-2.5 hours in the oven at 160°C/325°F) until the meat is tender and falling off the bone.
- Finish
- Once the meat is fully cooked, remove the shanks from the pot and set them aside. If the sauce is too thin, continue to cook it on low heat until it reduces and thickens slightly.
- Adjust the seasoning with salt and pepper, and optionally, stir in a little lemon zest or fresh gremolata (see below) for an extra burst of flavor.
Traditional Gremolata (Optional but Classic)
- 2 tbsp finely chopped parsley
- 1 tsp lemon zest
- 1 clove garlic, very finely minced
Mix these ingredients together and sprinkle the gremolata over the Osso Buco just before serving for a fresh, zesty contrast to the rich, braised meat.
For Risotto alla Milanese (Saffron Risotto)
- Sauté the Onion
- In a wide pan, melt 2 tbsp of butter over medium heat. Add the finely chopped onion and cook, stirring occasionally, until the onion is soft but not browned (about 5-6 minutes).
- Toast the Rice
- Add the Arborio rice to the pan and stir for 1-2 minutes to coat the rice in the butter and toast it lightly.
- Deglaze with Wine
- Pour in the white wine and let it cook for a minute or two, until most of the wine has been absorbed by the rice.
- Add Broth
- Begin adding the warm chicken or veal broth, one ladle at a time. Stir frequently, allowing each ladle of broth to be absorbed by the rice before adding more. Continue this process for about 15 minutes.
- Add Saffron
- When the rice is halfway through cooking, stir in the saffron along with its soaking liquid, allowing the rice to take on its signature golden color and delicate flavor.
- Finish the Risotto
- After 18 minutes or so, the rice should be creamy and al dente. Remove the pan from the heat and stir in the remaining tablespoon of butter and freshly grated Parmesan cheese. Season to taste with salt and pepper.
To Serve
- Spoon a generous ladle of the creamy saffron risotto onto each plate.
- Top with one of the tender braised veal shanks.
- Spoon the flavorful sauce from the braised shanks over the top.
- Finish with a sprinkling of gremolata or extra Parmesan cheese.
- Serve with a glass of Italian white wine (such as Pinot Grigio) or a light red (Barbera or Chianti) for the perfect pairing.
Variations of Osso Buco with Risotto alla Milanese
| Variation | How to Adapt |
|---|---|
| Beef Shanks Instead of Veal | Use beef shanks if veal is not available. The cooking time may be slightly longer. |
| Tomato-Less Osso Buco | For a more traditional Milanese version, omit the crushed tomatoes and rely only on white wine and stock for braising. |
| Pressure Cooker Version | Reduce the braising time to 45-50 minutes by using a pressure cooker. |
| Polenta Instead of Risotto | Substitute the risotto with creamy polenta for a different texture and flavor profile. |
| Gluten-Free Version | Skip the flour for dredging or use cornstarch as a substitute to make the dish gluten-free. |
FAQs About Osso Buco with Risotto alla Milanese
Q1: Can I make Osso Buco with another type of meat?
Yes, while traditional Osso Buco uses veal shanks, you can substitute with beef shanks or even pork if veal is unavailable. Keep in mind that beef will require slightly longer cooking time.
Q2: How do I store leftover Osso Buco?
Store leftover Osso Buco and risotto separately in airtight containers in the refrigerator. The dish will keep for up to 3 days. Reheat gently on the stovetop, adding a little broth if the sauce has thickened too much.
Q3: Can I freeze Osso Buco?
Yes, Osso Buco freezes well. After it has cooled, store the braised shanks and sauce together in an airtight container or freezer-safe bag for up to 3 months. Defrost in the fridge overnight before reheating.
Q4: Is it necessary to use saffron in Risotto alla Milanese?
Saffron is the key flavor component in traditional Risotto alla Milanese. However, if you’re unable to find saffron, you can substitute with turmeric for a similar color, but the flavor will be different.
Conclusion
Traditional Osso Buco with Risotto alla Milanese is a classic Italian dish that brings together tender, slow-braised veal shanks and creamy, saffron-infused risotto. It’s a comforting, flavorful pairing that has stood the test of time. Whether you’re making it for a special occasion or simply indulging in a delicious Italian meal, this recipe is sure to impress with its depth of flavor and its ability to transport you straight to Milan. So, gather your ingredients, set aside some time for braising, and enjoy the authentic taste of Italy at your table!
[tasty-recipe id=”15702″]