
There are certain dishes that feel like they carry entire cities within them—aromas that whisper of cobblestone streets, slow afternoons. The kind of cooking that insists you pause and savor life. For me, Osso Buco, a veal shank, is one of those dishes.
Every time I make it, I’m transported straight back to the Antica Trattoria della Pesa in Milan They served Ossobuco on the menu is the most Milanese style served in an antique furnished dining room.
Osso Buco is Italian comfort food at its finest: rustic, elegant, deeply flavorful, and built on the kind of slow, patient cooking that feels like a small act of love.
This Milanese-style Osso Buco is exactly the kind of recipe I adore—simple ingredients, layered flavors, and a braise that fills the house with the kind of aroma that makes everyone wander into the kitchen asking, “When will it be ready?”

Milanese cooks have known this forever. Their Osso Buco is not flashy; it’s soulful. It’s the kind of dish that rewards patience and invites storytelling. And as someone who loves weaving memories into meals.
Growing up in Bavaria, I learned early on that the best dishes often come from humble cuts treated with care. Veal shanks are exactly that—tough at first glance, but with time, heat, and a little coaxing, they transform into something silky and luxurious.
Ingredients for a Classic Milanese Osso Buco
(Serves 4)
For the Osso Buco
- 4 Veal shanks, 1½–2 inches thick (optional beef shanks)
- Salt and freshly ground black pepper
- ½ cup all-purpose flour
- 3 tbsp olive oil
- 2 tbsp butter
- 1 large onion, finely diced
- 2 carrots, finely diced
- 2 celery stalks, finely diced
- 4 cloves garlic, minced
- 1 cup dry white wine
- 1 cup crushed tomatoes or tomato puree
- 2 cups beef or veal stock
- 1 bay leaf
- 1–2 sprigs fresh thyme
- Strips of lemon zest
- Optional: a small piece of parmesan rind for extra depth
For the Gremolata (Italian condiment)
- Zest of 1 lemon
- 1 small garlic clove, minced
- 2 tbsp finely chopped parsley
🍳 How I Make It: Slow, Gentle, and Full of Heart
1. Preparing the Veal
I start by patting the shanks dry—this helps them brown beautifully. A generous sprinkle of salt and pepper, a light dredge in flour, and they’re ready for the pot.

2. Browning the Meat
In my heavy Dutch oven, I melt butter with olive oil until it shimmers. The shanks go in with a satisfying sizzle, turning golden and caramelized on all sides. This step is where the magic begins.
3. Building the Flavor Base
Once the meat is set aside, I add the onion, carrot, and celery—the classic Italian soffritto. They soften, sweeten, and take on a little color. Garlic joins for the final minute, just enough to bloom.

4. Deglazing with Wine
A splash of dry white wine loosens all the browned bits from the bottom of the pot. I let it reduce by half, filling the kitchen with a warm, winey aroma.
5. Adding Liquids and Aromatics
Tomatoes, stock, bay leaf, thyme, and lemon zest strips go in next. If I have a parmesan rind in the fridge, I toss it in—it melts slowly, adding a subtle richness.
The shanks return to the pot, nestled into the sauce like they belong there. The liquid should come halfway up the meat, never drowning it.
6. The Slow Braise
I cover the pot and let it simmer gently. This is the part where time does the work. Over the next couple of hours, the veal becomes tender enough to fall from the bone, and the marrow melts into the sauce, giving it that unmistakable silkiness.
🌿 Finishing with Gremolata (Italian condiment)
Just before serving, I mix lemon zest, garlic, and parsley. This bright, fragrant sprinkle is essential—it cuts through the richness and wakes up the entire dish.

🍽️ How I Serve It
Traditionally, Osso Buco is paired with Saffron Rsotto (Risotto alla Milanese), but it’s equally lovely with creamy Polenta, mashed potatoes, or even buttered wide noodles.
No matter the pairing, the real star is the marrow. I always encourage guests to scoop it out—it’s pure velvet.
❤️ Why This Dish Feels Like Home
Even though Milan is far from Bavaria—and even farther from where I live now—Osso Buco feels like a bridge between all the places I’ve called home. It’s European at its core, but it fits beautifully into my American kitchen.
It’s a dish that invites you to slow down, to savor, to gather. And in a world that moves too fast, that feels like a gift.
Osso Buco (Milanese-style)
Ingredients
- For the Osso Buco:
- 4 veal (or beef) shanks, about 1½–2 inches thick
- Salt and freshly ground black pepper
- ½ cup all-purpose flour (for dredging)
- 3 tbsp olive oil
- 2 tbsp butter
- 1 large onion, finely diced
- 2 carrots, finely diced
- 2 celery stalks, finely diced
- 4 cloves garlic, minced
- 1 cup dry white wine
- 1 cup crushed tomatoes
- 2 cups beef or veal stock
- 1 bay leaf
- 1–2 sprigs fresh thyme
- Zest of 1 lemon (use a vegetable peeler for strips)
- Optional: 1 small piece of parmesan rind (adds depth)
Instructions
- Prep the veal:
- Pat the shanks dry.
- Season generously with salt and pepper.
- Dredge lightly in flour, shaking off excess.
- Brown the meat
- Heat olive oil and butter in a heavy Dutch oven over medium-high heat.
- Sear the shanks on all sides until deeply golden.
- Remove and set aside.
- Build the flavor base:
- Add onion, carrot, and celery to the pot.
- Sauté until softened and lightly caramelized, about 8–10 minutes.
- Add garlic and cook 1 minute more.
- Deglaze:
- Pour in the white wine, scraping up all the browned bits.
- Let it reduce by half.
- Add liquids + aromatics:
- Stir in tomatoes, stock, bay leaf, thyme, and lemon zest strips.
- Return the veal shanks to the pot, nestling them into the liquid.
- Liquid should come about halfway up the meat.
- Slow braise:
- Cover and simmer gently on low heat for 1 to 1.5 hrs.
Notes
The shanks are ready when the meat is soft, silky, and just starting to pull away from the bone, but not completely falling apart.
Traditionally, Osso Buco is paired with Saffron Risotto, but it’s equally lovely with creamy Polenta, mashed potatoes, or even buttered wide noodles.
