Italian Osso Buco is a comforting and elegant dish made with tender veal shanks slowly braised in a rich tomato and white wine sauce. This classic Milanese recipe is known for its deep flavor, melt-in-your-mouth texture, and savory vegetables simmered together until perfectly tender. Traditionally served with risotto, mashed potatoes, or pasta, it is a hearty meal that feels both rustic and refined.
Why You’ll Love This Recipe
Rich and comforting Italian flavors
Tender meat that falls off the bone
Perfect for family dinners or special occasions
Slow-cooked sauce packed with vegetables and herbs
Easy to prepare with simple ingredients
Great make-ahead meal because the flavors improve over time
Ingredients
(Tip: You’ll find the full list of ingredients and measurements in the recipe card below.)
4 veal shanks, about 1 1/2 inches thick
1/2 cup all-purpose flour
1 teaspoon salt
1/2 teaspoon black pepper
3 tablespoons olive oil
1 medium onion, finely chopped
2 medium carrots, diced
2 celery stalks, diced
4 garlic cloves, minced
1 cup dry white wine
2 cups beef broth
1 can (14 ounces) crushed tomatoes
2 tablespoons tomato paste
2 bay leaves
1 teaspoon dried thyme
1 teaspoon dried oregano
2 tablespoons chopped fresh parsley
Zest of 1 lemon
2 tablespoons butter
Directions
Pat the veal shanks dry using paper towels. Tie each shank with kitchen twine to help keep the meat together during cooking.
In a shallow bowl, combine the flour, salt, and black pepper. Dredge each veal shank lightly in the flour mixture, shaking off any excess.
Heat the olive oil in a large Dutch oven or heavy pot over medium-high heat. Add the veal shanks and brown them on all sides for about 3 to 4 minutes per side. Remove the browned shanks and set aside.
In the same pot, add the onion, carrots, and celery. Cook for about 5 minutes until softened. Stir in the garlic and cook for another minute.
Pour in the white wine and scrape the bottom of the pot to loosen any browned bits. Let the wine simmer for 2 minutes.
Add the beef broth, crushed tomatoes, tomato paste, bay leaves, thyme, and oregano. Stir until combined.
Return the veal shanks to the pot. The liquid should come about halfway up the sides of the meat. Cover the pot with a lid.
Reduce the heat to low and let the osso buco simmer gently for about 2 to 2 1/2 hours, turning the shanks once halfway through cooking. The meat should become fork-tender.
In a small bowl, mix the parsley and lemon zest to create a simple gremolata topping.
Remove the bay leaves from the sauce. Stir in the butter for a silky finish.
Serve the veal shanks hot with the sauce spooned over the top. Sprinkle with gremolata before serving.
Servings and timing
Servings: 4
Prep Time: 20 minutes
Cook Time: 2 hours 30 minutes
Total Time: 2 hours 50 minutes
Variations
Replace veal shanks with beef shanks for a richer flavor.
Add mushrooms for an earthy touch.
Use fresh rosemary instead of thyme for a stronger herb flavor.
Make it without tomatoes for a more traditional white-style osso buco.
Serve with creamy polenta, risotto, or buttered pasta.
Add a pinch of red pepper flakes for gentle heat.
Storage/Reheating
Store leftover osso buco in an airtight container in the refrigerator for up to 3 days. The flavor often becomes even better the next day.
To freeze, let the dish cool completely before transferring it to freezer-safe containers. Freeze for up to 3 months.
For reheating, place the osso buco in a covered skillet or saucepan over low heat until warmed through. Add a splash of broth if the sauce becomes too thick. You can also reheat it in the oven at 325°F for about 20 minutes.
FAQs
What does osso buco mean?
Osso buco means “bone with a hole” in Italian, referring to the marrow-filled bone in the center of the veal shank.
Can I use beef instead of veal?
Yes, beef shanks work very well and create a richer, heartier flavor.
What should I serve with osso buco?
It pairs beautifully with risotto, mashed potatoes, polenta, or pasta.
Why is my osso buco tough?
It likely needs more cooking time. Slow braising helps break down the connective tissue and makes the meat tender.
Can I make this recipe ahead of time?
Yes, osso buco tastes even better after resting overnight because the flavors deepen.
Do I need to tie the veal shanks?
Tying helps the meat stay together during cooking, but it is optional.
What is gremolata?
Gremolata is a fresh topping made with parsley and lemon zest that brightens the rich sauce.
Can I cook osso buco in the oven?
Yes, after preparing the sauce on the stovetop, cover the pot and bake at 325°F for about 2 1/2 hours.
Is osso buco spicy?
No, it is savory and rich rather than spicy.
Can I freeze leftovers?
Yes, osso buco freezes very well for future meals.
Conclusion
Italian Osso Buco is a timeless comfort dish filled with rich flavors and tender braised meat. The combination of slow-cooked vegetables, aromatic herbs, and savory sauce creates a memorable meal perfect for gatherings or cozy dinners at home. Whether served with creamy risotto or simple mashed potatoes, this classic Italian recipe is sure to become a favorite in your kitchen.
Italian Osso Buco is a classic Milanese dish featuring tender veal shanks slowly braised in a rich tomato, white wine, and herb sauce until melt-in-your-mouth tender.
Author:Sophia
Prep Time:20 minutes
Cook Time:2 hours 30 minutes
Total Time:2 hours 50 minutes
Yield:4 servings
Category:Main Course
Method:Braising
Cuisine:Italian
Diet:Gluten Free
Ingredients
4 veal shanks (about 1 1/2 inches thick)
1/2 cup all-purpose flour
1 teaspoon salt
1/2 teaspoon black pepper
3 tablespoons olive oil
1 medium onion, finely chopped
2 carrots, diced
2 celery stalks, diced
4 garlic cloves, minced
1 cup dry white wine
2 cups beef broth
1 can (14 ounces) crushed tomatoes
2 tablespoons tomato paste
2 bay leaves
1 teaspoon dried thyme
1 teaspoon dried oregano
2 tablespoons chopped fresh parsley
Zest of 1 lemon
2 tablespoons butter
Instructions
Pat veal shanks dry and tie with kitchen twine if needed.
Mix flour, salt, and pepper, then dredge veal shanks lightly.
Heat olive oil in a Dutch oven and brown shanks on all sides, then remove.
Sauté onion, carrots, and celery until softened, then add garlic.
Deglaze pot with white wine and simmer for 2 minutes.
Add broth, crushed tomatoes, tomato paste, bay leaves, thyme, and oregano.
Return veal to pot, cover, and simmer on low for 2–2.5 hours until tender.
Mix parsley and lemon zest for gremolata topping.
Remove bay leaves and stir butter into sauce.
Serve veal with sauce and sprinkle gremolata on top.
Notes
Slow cooking is key for tender meat.
Beef shanks can be substituted for a richer flavor.
Dish tastes even better the next day.
Add broth if sauce becomes too thick when reheating.
Gremolata adds freshness and brightness to the dish.