During the time I spent in Milan, I found out that food is more than nourishment — it’s an act of refinement. The city’s cuisine mirrors its character: elegant, precise, and deeply rooted in tradition. Among its most enduring culinary signatures are osso buco, risotto alla milanese, and gremolata, three dishes that, when served together, form a harmony of colour, flavour, and texture unlike any other.



Osso Buco: A Dish of Patience and Ingenuity
The name osso buco translates to “hole bone,” a reference to the marrow-filled veal shank at its center. This dish originated in Milan sometime in the 19th century, when local cooks began slow-braising inexpensive cuts of meat with vegetables, wine, and stock. Over hours, the collagen broke down into silkiness, while the precious marrow melted into the sauce, creating its distinctive flavour and texture.
Traditionally, Milanese osso buco is prepared in bianco — without tomatoes — allowing the delicate taste of veal and the sweetness of the vegetables to shine. Later, variations with tomato emerged and spread throughout Lombardy and beyond. Whichever version you try, one truth remains: this is comfort food with elegance, a masterclass in transforming thrift into luxury.
Fun fact: In Milanese households, osso buco was once a Sunday ritual, often prepared in heavy copper pots passed down through generations. The marrow-filled bones were considered sacred — children were given the smallest spoon and taught to scoop out the marrow with reverence.
Risotto alla Milanese: The Saffron Jewel
If osso buco is the heart of Milan’s table, then risotto alla milanese is its crown jewel. Its golden hue comes from saffron, a spice once more valuable than gold. According to legend, the dish was born in the late 1500s, when a glassmaker named Valerio di Fiandra, who worked on the stained glass windows of Milan’s cathedral, jokingly added saffron to his apprentice’s wedding rice dish to mimic the rich yellows of his glass. The result was a sensation — a creamy, aromatic risotto that glowed like the city’s golden spires at sunset.
The key to its magic is patience. Arborio or Carnaroli rice is gently toasted, then slowly simmered with broth, butter, and saffron until it reaches that perfect all’onda consistency — flowing like a wave. The dish’s buttery depth and subtle bitterness from saffron make it the perfect foil for the rich braising juices of osso buco.
Gremolata: The Milanese Secret Weapon
No Milanese meal of osso buco is complete without the finishing touch — gremolata, a lively mixture of parsley, garlic, and lemon zest. This seemingly simple garnish introduces brightness and balance to the otherwise rich plate. Each bite becomes a miniature masterpiece: the earthy veal, the creamy risotto, and the zesty spark of citrus combine to form a perfectly orchestrated bite.
Historically, gremolata was seen as the chef’s signature move — a way to “wake up” traditional dishes with freshness. It’s also incredibly versatile, finding its way onto roasted fish, stews, and vegetables across Northern Italy.
In older Lombard cookbooks, gremolata was sometimes called “il tocco finale” — the final touch. Milanese grandmothers often said that forgetting the gremolata was like serving champagne without bubbles.

Osso buco with risotto alla milanese & gremolata
Equipment
- 1 heavy casserole or Dutch oven
- 1 wide sauce pan
- 1 garlic / cheese grater
- 1 small pot optional
Ingredients
For the osso buco
- 2 veal shanks
- 250 ml red wine
- 500 ml beef broth
- 1 yellow/white onion
- 1 big carrot
- 1 celery branch
- 5 garlic cloves
- 2 tbps flour
- 1 tsp whole peppercorns
- 4 bay leaves
- 3 tbps tomato paste
For the risotto
- 200 g arborio rice
- A glass of white wine
- Saffron threads you can also use saffron powder
- 1 l veggie broth for cooking the risotto
- Parmesan to taste
For the gremolata
- 1 lemon
- 1 bunch of fresh parsley
- 2 garlic cloves
Other
- 2 tbps olive oil
- 2 tbsp butter
- salt, pepper & dried herbs
Instructions
Osso Buco
- Pat the veal shanks dry with kitchen paper and season well with salt and pepper on both sides. Lightly dredge each shank in flour, shaking off the excess so the coating is thin and even.Heat olive oil in a heavy casserole or Dutch oven over medium–high heat.
- Brown the shanks on all sides until golden, working in batches if necessary so you do not crowd the pan. Remove and set aside.
- Lower the heat to medium. In the same pan, add one onion, the carrot, the celery and 2 thirds of your garlic chopped however you'd like (I recomment big chunks). Cook, stirring often, until the vegetables are soft but not browned, about 8–10 minutes.
- Add your tomato paste and cook for 1-2mins. Pour in the red wine, scraping the bottom of the pan to dissolve any browned bits. Let it bubble for 2–3 minutes to reduce slightly. Add the bay leaves, salt, the whole peppercorns and your dried herbs.Bring to a gentle simmer, then cover the pot with a lid.
- Cook on low heat on the stovetop or in a 160 °C oven for about 2h–2h30 hours, until the meat is very tender and almost falling off the bone. Check occasionally and add a little more stock if the liquid reduces too much.
Risotto alla milanese
- Place the saffron threads in a small cup with 2–3 tbsp of hot stock or water and let them infuse while you start the risotto.
- In a wide saucepan, heat the butter and olive oil over medium heat. Add the finely chopped onion with a pinch of salt and cook gently until soft and translucent, about 5–7 minutes, without browning.
- Add the rice and toast it, stirring continuously, for about 2 minutes until the grains look slightly translucent around the edges.Pour in the white wine and cook, stirring, until almost fully absorbed.
- Begin adding the hot veggie stock, one ladle at a time, stirring frequently. Wait until the liquid is mostly absorbed before adding the next ladle. Maintain a gentle simmer.
- After about 10 minutes of cooking, stir in the saffron infusion (threads and liquid). Continue adding stock and stirring.
- Cook until the rice is al dente and creamy, about 16–18 minutes total from the time you first added stock. When the rice is just done, remove the pan from the heat. Add the extra butter and grated Parmesan. Stir vigorously to “mantecare” (emulsify) the risotto, adding a spoonful of stock if needed so it flows slowly from a spoon (all’onda).
Gremolata
- Combine the chopped parsley, lemon zest and minced garlic in a small bowl with some olive oil.Mix well and set aside at room temperature; do not refrigerate, so the flavours stay bright.Just before serving, taste a pinch. If the garlic is very pungent, you can add a little more parsley to balance it.
Serving
- Spoon a generous portion of risotto alla milanese onto each warm plate, spreading it slightly.Place a veal shank on top or alongside the risotto, making sure each portion gets some of the marrow bone.Ladle some of the braising sauce over the meat and around the risotto.Finish by sprinkling a small spoonful of gremolata over each shank, focusing on the marrow area for maximum flavour.
