
Walk into a Milan trattoria when something has been braising all afternoon, and the smell tells you dinner will be good. Wine, butter, vegetables, and slow-cooked meat come together in a sauce that begs for something soft underneath it.
Ossobuco is one of those dishes that looks like restaurant food but depends more on patience than skill. Cross-cut veal shanks cook slowly until the meat is fork-tender and the marrow inside each bone turns rich and soft. A spoonful of fresh lemon, parsley, and garlic wakes up the whole plate at the end.
This ossobuco recipe uses dry white wine, broth, vegetables, and just enough tomato paste to deepen the sauce without covering the veal. Also spelled osso buco or osso bucco, it’s a Milanese classic that’s honestly much easier to make than it looks.
What Is Ossobuco?
Ossobuco is a traditional Milanese dish made from cross-cut veal shanks slowly braised with vegetables, white wine, and broth. It’s usually finished with a fresh parsley, lemon, and garlic mixture called gremolata and served with saffron risotto.
The Italian name tells you exactly what makes the dish special. Osso means “bone,” while buco means “hole.” That hole is the center of the shank bone, where you’ll find the soft marrow.
The dish comes from Milan in Lombardy in northern Italy. Older versions, often called ossobuco in bianco, were made without tomato. Tomato was added to later versions, so you’ll find both styles in Italian cooking.
The marrow matters just as much as the meat. As everything cooks, it becomes soft and rich and adds body to the braising juices. Don’t leave that little treasure sitting inside the bone when dinner is over.
Why You’ll Love This Ossobuco Recipe
The first reason is the meat. A veal shank starts as a firm cut filled with connective tissue, but slow cooking changes it completely. After a long braise, the meat becomes soft enough to pull apart with a fork while still staying juicy around the bone.
The sauce is just as good. Wine loosens all those dark browned bits from the pot, while onion, carrot, celery, broth, and a little tomato paste cook down around the shanks. The marrow adds even more richness. Then the fresh gremolata cuts through everything with lemon and parsley.
Best of all, most of the cooking time doesn’t need much attention. Once the pot goes into the oven, we make it and mostly leave it alone until the meat is ready. It’s a great meal when we have friends over because the hard work happens well before everyone sits down to eat.
Veal or Beef Shanks for Ossobuco?
Traditional Milanese ossobuco is made with veal shanks. Veal has a mild flavor, and the meat becomes very soft during the long braise. If you want the version closest to the Milanese classic, veal is the first choice.
Look for cross-cut shanks about 1½ inches thick. Each piece should have a round section of bone near the middle with plenty of meat around it. Pieces around 9 to 12 ounces each are a useful size for serving one person.
Veal shanks aren’t always easy to find in American supermarkets. A butcher may have them in the case, or you may need to order them ahead. Don’t let that stop you from making the dish.
Beef shanks make a very good substitute. They have a stronger beef flavor and can take longer to become soft, so plan on adding another 30 to 60 minutes to the braising time. The same vegetables, wine, broth, and cooking method work for beef osso buco.
If your shanks have a loose outer edge, you can tie each one around the middle with kitchen twine. This helps the meat keep its round shape while it cooks. It’s useful for a neat-looking plate, but it won’t change the flavor.
Oxtail or bone-in short ribs can also be braised with similar flavors when shanks aren’t available. They won’t make true ossobuco, since the cross-cut marrow bone is part of what defines the dish, but they’ll still make a very good dinner.

Key Ingredients & Substitutions
Veal shanks – 4, about 1½ inches thick (9–12 oz / 255–340 g each): Cross-cut shanks give you meat, connective tissue, and marrow in one piece. Beef shanks work well too, but they’ll usually need another 30 to 60 minutes of cooking.
Salt and black pepper – to taste: Season the shanks before they touch the flour or pot so the meat is seasoned from the start. If your broth contains plenty of salt, season the sauce again only after it has reduced.
All-purpose flour – ¼ cup (30 g): A very light coating helps the shanks form a brown crust and gives the finished sauce a little body. You can leave it out if needed, though the sauce may stay slightly thinner.
Unsalted butter – 2 tablespoons (28 g): Butter works especially well with the mild veal and fits the cooking style of northern Italy. Olive oil can replace it if that’s what you have.
Carrots – 2 large, finely diced: Carrots add a mild sweetness that balances the wine and tomato. Cut them fairly small so they soften into the braising sauce.
Celery – 2 stalks, finely diced: Celery brings a savory base without making the sauce taste strongly of celery. There isn’t a perfect substitute, but a little fennel can work in a pinch.
Onion – 1 large, finely chopped: Onion cooks with the carrot and celery to form the vegetable base. Yellow or white onion both work well here.
Garlic – 2 cloves, minced: Garlic adds another savory note to the braise without taking over. Keep the additional garlic for the gremolata raw so it tastes fresh and sharp.
Dry white wine – 1 cup (240 ml): Choose a dry wine rather than a sweet one because it needs to balance the rich meat. If you don’t cook with alcohol, replace it with additional broth and a small squeeze of lemon at the end.
Low-sodium beef broth – 2 cups (480 ml): Broth gives the shanks enough moisture for a long braise while adding more meat flavor. Chicken broth is a lighter substitute and works very well with veal.
Tomato paste – 2 tablespoons (30 g): A small amount gives this version color and a deeper sauce without turning it into a tomato stew. For an older in bianco style, leave the tomato out.
Bay leaf – 1, optional: Bay adds a mild herbal note during the long cook. Leave it out if you want to keep the ingredient list closer to simpler Milanese versions.
Fresh thyme – 1 small sprig, optional: Thyme works well with veal, wine, and vegetables. Dried thyme can be used instead, but add only a small pinch.
Fresh parsley – 2 tablespoons, finely chopped: Parsley makes up the green, fresh base of the gremolata. Flat-leaf Italian parsley is the best choice.
Garlic – 1 clove, finely minced: Raw garlic gives gremolata its sharp edge, so one small clove is enough. If your garlic cloves are very large, use half.
Lemon – finely grated zest of 1: Lemon zest brightens the rich meat without adding extra liquid. Grate only the yellow outer layer because the white pith underneath tastes bitter.

Equipment You’ll Need
- 6-quart Dutch oven with a lid: A heavy pot holds steady heat and can move from the stovetop into the oven.
- Large shallow bowl or plate: You’ll need this for the light flour coating on the shanks.
- Kitchen tongs: These make turning the heavy shanks much easier while they’re browning.
- Cutting board and sharp knife: Use them for dicing the vegetables and preparing the gremolata.
- Wooden spoon: A firm spoon helps scrape the browned bits from the bottom after you add the wine.
- Small mixing bowl: Use it to combine the parsley, garlic, and lemon zest.
- Kitchen twine, optional: Tie loose shanks around their edges if you want them to hold a neat round shape.
Step-by-Step Instructions for Ossobuco
- Prepare the veal shanks. Pat all four shanks dry with paper towels, since wet meat won’t brown as well. Season both sides with salt and black pepper, then tie each shank around its middle if the meat looks loose. Let them sit while you prepare the vegetables.
- Lightly flour the meat. Put the flour on a shallow plate and coat each shank very lightly on both sides. Shake away every bit of loose flour because a thick coating can turn gummy in the braising liquid. You want a thin dusty layer rather than breading.
- Brown the shanks. Melt the butter in a 6-quart Dutch oven over medium-high heat. Add the shanks without crowding them and brown for about 3 to 4 minutes per side until a deep golden crust forms. Work in batches if needed, then transfer the browned meat to a plate.
- Cook the vegetables. Lower the heat to medium and add the diced carrot, celery, and onion to the same pot. Cook for about 6 to 8 minutes, stirring now and then, until the vegetables soften and the onion looks clear. Add the garlic and cook for another 30 seconds.
- Add the tomato paste and wine. Stir in the tomato paste and cook it for about one minute so its flavor deepens. Pour in the dry white wine and scrape firmly across the bottom of the pot to release the browned bits. Let the wine bubble for 3 to 4 minutes so it reduces slightly.
- Build the braise. Pour in the broth, then add the optional bay leaf and thyme. Return the browned shanks to the pot in a single layer with the marrow bones facing upward. The liquid should come about halfway to two-thirds up the sides rather than completely covering the meat.
- Braise in the oven. Cover the Dutch oven and place it in a 325°F (165°C) oven. Cook for about 2½ to 3 hours, checking after 2 hours to make sure there’s still enough liquid. The shanks are ready when a fork slides easily into the meat and it almost pulls away from the bone.
- Make the gremolata. While the meat finishes cooking, finely chop the fresh parsley and garlic. Mix them with the finely grated lemon zest in a small bowl. Keep the mixture fresh and uncooked so its bright flavor can balance the long-cooked sauce.
- Finish the sauce. Carefully transfer the shanks to a warm plate and remove the bay leaf and thyme. If the sauce looks thin, simmer it uncovered over medium heat for 5 to 10 minutes until it lightly coats a spoon. Taste before adding more salt and pepper because the sauce becomes stronger as it reduces.
- Add the gremolata and serve. Return the shanks to the sauce and spoon some of the hot braising liquid over them. Sprinkle the fresh gremolata over each portion just before serving so the lemon and parsley stay bright. Serve at once with risotto alla milanese, creamy polenta, or another side that can catch the sauce.

What Is Gremolata and Why Does Ossobuco Need It?
Gremolata is a simple mixture of finely chopped fresh parsley, raw garlic, and lemon zest. Nothing needs cooking, and that’s exactly why it works so well here.
Think about what has happened inside the pot. The veal has spent hours cooking with marrow, butter, wine, broth, and vegetables. The finished sauce is deep and rich, which means the plate needs something sharp and fresh to keep it from feeling too heavy.
That’s the job of gremolata. Lemon zest adds a clean citrus smell, parsley adds freshness, and raw garlic gives it a small bite. Together, those three simple ingredients change the whole plate.
Make the gremolata near the end of the braising time. It can sit for a short while, but it’s best on the day you make it. I like to sprinkle it over the shanks just before they reach the table instead of cooking it into the sauce.
Keep the pieces fine enough that you don’t get a large chunk of raw garlic in one bite. A sharp knife works better than turning everything into a wet paste in a food processor.
Slow Cooker and Instant Pot Ossobuco
Ossobuco works well with other cooking methods, but don’t skip the browning stage. That dark crust on the meat and the brown bits left in the pot build much of the finished flavor.
For a slow cooker, flour and brown the shanks first. Cook the vegetables, tomato paste, and wine on the stovetop, then transfer everything to the slow cooker with the broth. Cook veal on LOW for about 6 to 8 hours, until it pulls easily with a fork.
Beef shanks may need the full 8 hours. Check them rather than trusting only the clock, because shanks can vary a lot in size and thickness.
For an Instant Pot, brown the meat using Sauté, then cook the vegetables and deglaze with the wine. Add the broth and shanks, seal the pot, and cook on high pressure for about 45 minutes. Let the pressure release naturally for 15 minutes before opening.
If the pressure-cooked sauce looks watery, remove the meat and simmer the sauce using Sauté. Gremolata always goes on at the end. Don’t pressure cook or slow cook it with the meat because you’ll lose the fresh flavor that makes it useful.

Tips for the Best Ossobuco
- Buy evenly cut shanks. Pieces close to the same thickness will become tender at roughly the same time. Look for shanks around 1½ inches thick with the marrow bone near the center.
- Pat the meat dry. Surface moisture turns into steam and works against browning. Dry shanks form a much better crust in the hot butter.
- Keep the flour light. Shake off all loose flour before browning. A heavy coating can fall into the sauce and make it pasty instead of smooth.
- Give the shanks room. If four pieces won’t fit without touching, brown them in two batches. Crowding lowers the heat and leaves the meat pale.
- Don’t drown the meat. Braising isn’t the same as boiling. The liquid should come partway up the shanks while the top remains above it.
- Cook until tender, not until the timer rings. One batch may be ready in 2½ hours while thicker pieces need longer. If the meat still fights your fork, keep cooking.
- Reduce the sauce if needed. The finished sauce should lightly cling to the meat. Remove the shanks and simmer the liquid uncovered if it still looks watery.
- Keep the gremolata fresh. Add it right before serving. The uncooked lemon, garlic, and parsley are there to balance the long-cooked flavors underneath.
Serving Suggestions
The classic Milanese partner for ossobuco is saffron risotto. Creamy, golden Simple Italian Saffron Risotto Recipe (Risotto Milanese) sits underneath the shank and catches every spoonful of sauce. The saffron also brings another flavor closely tied to Milanese cooking.
Creamy polenta is another wonderful choice, especially if you want something simple. Try Creamy Italian Polenta Recipe and spoon plenty of braising sauce over both the polenta and veal.
Crusty bread works when you don’t want to make another side. Recipe for Authentic French Baguette isn’t Italian, but its crisp crust and open crumb are very good for catching the sauce left on the plate.
And don’t forget the marrow. Once the meat is gone, scoop the soft marrow from the center of the bone and spread it onto a small piece of bread with a pinch of salt. It’s rich, so you don’t need much.
For a lighter plate, add simply cooked green vegetables or a crisp green salad. Keep the side fresh and plain because the shank and sauce should remain the center of dinner.
Make-Ahead and Storage
Make ahead: Ossobuco is an excellent dish to cook one day before serving. Cool the shanks in their sauce, cover the pot, and refrigerate everything together overnight. The sauce tastes even deeper the following day, and any firm fat on top is easy to remove before reheating.
Refrigerator: Keep leftover meat covered by the sauce in an airtight container for up to 4 days. Storing the meat in its liquid protects it from drying out. Keep the gremolata separate and make a fresh batch when possible.
Freezer: Freeze cooled ossobuco with plenty of sauce for up to 3 months. Use a freezer-safe container and leave a little room at the top for expansion. Thaw it overnight in the refrigerator before reheating.
Reheating: Put the shanks and sauce in a covered pot and warm over low heat until hot throughout. You can also reheat them covered in a 300°F (150°C) oven. Add a splash of broth if the sauce has become too thick in the refrigerator.
Fresh gremolata should wait until serving time. Freezing parsley, lemon zest, and raw garlic together takes away the crisp taste that makes the topping so useful.
Troubleshooting
The veal is still tough. The shanks haven’t cooked long enough for their connective tissue to soften. Cover the pot again and continue braising for another 20 to 30 minutes before checking with a fork.
The sauce is watery. Your pot may have held in more moisture than expected, or the shanks may have released extra liquid. Remove the cooked meat and simmer the sauce uncovered until it lightly coats a spoon.
The sauce is too thick. Too much flour or too much reduction can make the sauce heavy. Stir in a small splash of warm broth at a time until it loosens.
The meat fell completely apart. The shanks cooked longer than needed or weren’t tied before cooking. They’ll still taste good, but next time begin checking earlier and tie loose pieces with kitchen twine.
The flour burns while browning. The heat is too high or loose flour is collecting in the butter. Shake the shanks well after dredging and lower the heat slightly before the next batch.
The dish tastes too rich. The braise needs the contrast from its fresh topping. Add plenty of lemon-parsley gremolata and serve the shanks with risotto, polenta, or a fresh green side rather than another rich sauce.

FAQ
What does ossobuco mean?
Ossobuco means “bone with a hole” in Italian, referring to the round marrow bone in the center of each cross-cut shank. Osso means bone and buco means hole. That bone isn’t just where the dish gets its name, because the marrow inside it is also one of its most prized parts.
What cut of meat is used for an osso buco recipe?
An osso buco recipe traditionally uses cross-cut veal shanks about 1 to 1½ inches thick, with a marrow bone in the center. Hind shanks are a good choice because they’re meaty and well suited to long cooking. Beef shanks can replace veal when veal is difficult or expensive to find.
Are you supposed to eat the marrow in ossobuco?
Yes, the soft marrow inside the center bone is meant to be eaten and is considered an important part of ossobuco. You can scoop it out and eat it with the meat, mix a little into the sauce, or spread it over a small piece of crusty bread with salt.
Should I use red or white wine for ossobuco?
Dry white wine is the better choice for classic Milanese-style ossobuco because it adds acidity without making the braise too heavy. Red wine can still make a tasty braised shank, but it changes the color and flavor and moves the finished dish away from the style we’re making here.
Can I make ossobuco with beef instead of veal?
Yes, beef shanks can replace veal shanks using the same basic cooking method and ingredients. Beef has a stronger flavor and usually needs more time to soften, so allow another 30 to 60 minutes if necessary. Check tenderness with a fork rather than relying only on the cooking time.
Can I make ossobuco ahead of time?
Yes, ossobuco is an excellent make-ahead meal and can be braised one day before you plan to serve it. Cool the meat in its sauce, refrigerate everything together, and warm it slowly the next day. Make fresh gremolata before serving so the parsley, lemon, and garlic stay bright.
What is osso buco traditionally served with?
Osso buco is traditionally served with risotto alla milanese, a creamy Milanese risotto colored and flavored with saffron. Polenta is another excellent choice, especially when you want something simple for catching the sauce. Whatever you choose, serve enough sauce with each shank to spoon over the side.
Ossobuco (Osso Buco) — Italian Braised Veal Shanks
- Total Time: 3 hours 10 minutes
- Yield: 4 servings 1x
Description
This ossobuco recipe makes traditional Italian braised veal shanks with white wine, vegetables, broth, tomato paste, and fresh lemon-parsley gremolata.
Ingredients
For the Ossobuco
- 4 cross-cut veal shanks, about 1 1/2 inches thick, 9-12 oz each [255-340 g each]
- Salt and black pepper, to taste
- 1/4 cup all-purpose flour [30 g]
- 2 tablespoons unsalted butter [28 g]
- 2 large carrots, finely diced
- 2 celery stalks, finely diced
- 1 large onion, finely chopped
- 2 cloves garlic, minced
- 1 cup dry white wine [240 ml]
- 2 cups low-sodium beef broth [480 ml], plus more if needed
- 2 tablespoons tomato paste [30 g]
- 1 bay leaf, optional
- 1 small sprig fresh thyme, optional
For the Gremolata
- 2 tablespoons fresh parsley, finely chopped
- 1 clove garlic, finely minced
- Finely grated zest of 1 lemon
Instructions
- Prepare the veal shanks. Pat the shanks very dry with paper towels, then season both sides well with salt and black pepper. If the meat around the bones looks loose, tie each piece around the middle with kitchen twine so it keeps its round shape. Let the seasoned shanks sit while you prepare the vegetables.
- Lightly dredge in flour. Spread the flour over a shallow plate and coat each shank on both sides. Shake each piece well so only a very thin layer remains, since extra flour can burn in the pot and make the sauce pasty. The surface should look lightly dusted rather than covered in a thick white coating.
- Brown the shanks. Melt the butter in a 6-quart Dutch oven over medium-high heat, then add the shanks without crowding them. Brown for about 3 to 4 minutes on each side, until you see a deep golden crust rather than a pale gray surface. If your pot feels crowded, work in two batches so the meat sears instead of steaming.
- Cook the vegetables. Transfer the browned shanks to a plate and lower the heat to medium. Add the carrots, celery, and onion to the same pot and cook for 6 to 8 minutes, stirring now and then, until they’re soft and beginning to color. Stir in the garlic and cook for about 30 seconds, stopping before it turns dark.
- Deglaze with wine. Stir in the tomato paste and cook for about one minute, which takes away its raw taste. Pour in the white wine and scrape the bottom firmly with a wooden spoon to loosen every browned bit left by the veal. Let the wine bubble for 3 to 4 minutes, until its sharp smell softens and the liquid reduces slightly.
- Build the braise. Pour in the beef broth and add the bay leaf and thyme if you’re using them. Set the shanks back into the pot in a single layer, keeping the marrow bones facing upward. The liquid should reach about halfway to two-thirds up the sides, so add a little extra broth only if your pot is especially wide.
- Braise until fork-tender. Cover the Dutch oven and transfer it to a 325°F (165°C) oven for about 2½ to 3 hours. Check the liquid after about 2 hours and add a small splash of broth if the pot looks dry. The meat is ready when a fork slides in with very little resistance and the veal is starting to loosen from the bone.
- Make the gremolata. Near the end of the cooking time, finely chop the parsley and garlic and combine them with the lemon zest. Keep the mixture raw because its fresh taste is meant to stand against the rich braised meat and marrow. Set it aside until the shanks are ready rather than stirring it into the pot early.
- Reduce the sauce. Carefully move the cooked shanks to a warm plate and remove the bay leaf and thyme sprig. If the braising liquid is thin, simmer it uncovered over medium heat for 5 to 10 minutes until it looks glossy and lightly coats a spoon. Taste the reduced sauce before adjusting the salt and pepper, since reducing it also makes the seasoning stronger.
- Finish and serve. Return the shanks to the sauce and spoon some of the hot liquid over each piece without knocking the meat away from the bone. Sprinkle the gremolata over the top just before serving so the parsley stays green and the lemon remains fresh. Serve hot with saffron risotto or creamy polenta, and don’t forget to scoop out the marrow.
Notes
- Beef shanks can replace veal. Follow the same method, but allow an extra 30 to 60 minutes of braising if the meat still feels firm.
- Keep the flour coating very light. You may not need the full ¼ cup, since the goal is simply to dust the surface before browning.
- The bay leaf and thyme are optional. They add a mild herbal note, but the dish can be made without them for a simpler version.
- For an older-style in bianco variation, leave out the tomato paste. The sauce will be paler and place more focus on the wine, broth, veal, and vegetables.
- The oven gives steady heat. Braise covered at 325°F (165°C) for about 2½ to 3 hours, checking the meat for tenderness rather than judging it only by time.
- Ossobuco is excellent the next day. Refrigerate the shanks in their sauce, reheat slowly, and make a fresh batch of gremolata just before serving.
- Prep Time: 25 minutes
- Cook Time: 2 hours 45 minutes
- Category: Main dish
- Cuisine: Italian
Nutrition
- Calories: 610
- Sugar: 6 g
- Sodium: 690 mg
- Fat: 31 g
- Saturated Fat: 12 g
- Carbohydrates: 20 g
- Fiber: 3 g
- Protein: 58 g
Nutrition information
This website gives estimated nutritional information, which might change depending on the ingredients used.


