Want to try your hand at Milanese food at home? Here are some traditional Milanese dishes you can cook in your own kitchen, following the way they’re still made in Milan today — not the less authentic versions you often find abroad.
When people think of traditional Milanese food, they often picture a few well-known dishes — risotto alla Milanese, costoletta, ossobuco. But behind these names, there is a very specific way of cooking: simple ingredients, careful techniques, and recipes that haven’t changed much over time.
In this blog post, you’ll find some of the most classic Milanese recipes, in their traditional form. Not simplified, not adapted, but explained in a way that still makes them accessible if you’d like to try them at home.
And if cooking isn’t your thing, towards the end you’ll also find a few places in Milan where you can taste these dishes properly — the way locals love them.
Risotto alla Milanese
Risotto alla Milanese is probably the most recognisable dish in Milan. Traditional Milanese food tends to rely on simple ingredients and precise technique, and this dish is a perfect example.
Its distinctive golden colour comes from saffron, but it’s the texture that really defines it. The final step, mantecatura — stirring in cold butter and cheese off the heat — is essential to achieve the classic all’onda consistency, meaning the risotto should be creamy and fluid, gently spreading on the plate rather than sitting stiffly.
It can be served on its own or alongside ossobuco.
Recipe:
Ingredients (serves 4)
For the risotto
- 320 g Carnaroli rice
- 0.3 g saffron (about 2 small sachets)
- 50 g beef marrow
- ½ onion
- 40 g butter
- 50 ml white wine
- Fine salt, to taste
- Black pepper, to taste
For the broth
- 600 g beef bones
- 1 carrot
- 1 celery stalk
- ½ onion
- 1.5 litres water
- Fine salt, to taste
To finish (mantecatura)
- 80 g Parmigiano Reggiano (finely grated, cold from the fridge)
- 40 g butter (cold from the fridge)
Instructions
Start by preparing the broth.
First, separate the marrow from the bones. Roughly chop the carrot, celery, and onion.
Heat a drizzle of oil in a large pot, add the bones, and brown them over medium-high heat for 4 minutes. Add the vegetables and continue cooking for another 4 minutes.
Pour in the water, bring to a boil, then cover and let it simmer gently over medium-low heat for about 2 hours.
Once the broth is ready, move on to the risotto.
In a wide pan, melt the butter together with the marrow over low heat. Add the finely chopped onion and let it soften gently.
Add the rice and toast it over medium heat for 3 minutes, stirring frequently. When the grains feel hot to the touch, pour in the white wine and let it evaporate completely.
Add a ladle of hot, strained broth and begin cooking the rice, adding more broth gradually as it is absorbed. Continue for about 16–17 minutes.
In the meantime, dissolve the saffron in a small amount of warm broth.
About 5 minutes before the end of cooking, add the saffron to the rice and stir well to distribute the colour evenly.
When the rice is cooked, remove from the heat and finish with the mantecatura: add the cold butter and grated Parmigiano Reggiano, stirring until the risotto becomes creamy. If needed, add a small amount of broth to reach the desired consistency.
Serve immediately.
Note:
For a quicker version, you can use a vegetable broth instead of beef broth.
Costoletta alla Milanese
Costoletta alla Milanese is one of the most iconic examples of Milanese food — simple, generous, and almost universally loved.
At first glance, it might look like a breaded cutlet, but in this traditional Milanese recipe it follows very specific rules: veal on the bone, not too thin, coated in breadcrumbs and fried in butter.
The result is crisp on the outside, tender inside, and rich without being heavy — a dish that’s as straightforward as it is recognisable.
Recipe:
Ingredients (serves 4)
- Veal cutlets on the bone (about 150 g each, not too thick)
- Eggs (1 per cutlet)
- Breadcrumbs, as needed
- 250 g clarified butter (for 4–5 cutlets)
- Flaky salt (such as Maldon), to taste
Instructions
Trim any visible excess fat from the edges of the cutlets.
Make 2–3 small incisions along the outer edge of each piece — this helps prevent the meat from curling during cooking.
Lightly pound the cutlets with a meat mallet to achieve an even thickness, without making them too thin.
Prepare the breading.
In a shallow bowl, beat the eggs with a fork (do not add salt). Place a generous amount of breadcrumbs in a separate dish.
Holding each cutlet by the bone, first coat it in breadcrumbs, pressing gently so they adhere evenly. Dip it into the beaten egg, allowing any excess to drip off, then coat it again in breadcrumbs, pressing lightly to ensure an even coating on both sides.
(Optional but recommended)
Using the back of a knife, lightly press the surface of the breading to create a subtle crosshatch pattern. This helps the coating adhere better and reduces the formation of air bubbles during frying.
In a large frying pan, melt the clarified butter over medium-high heat.
When the butter is hot, add the cutlets and cook for about 5–6 minutes per side, until golden and cooked through. While they cook, spoon some of the melted butter over the bone as well.
Once ready, transfer the cutlets to paper towels to remove any excess fat.
Place on a serving plate, sprinkle with flaky salt, and serve immediately.
Mondeghili
Mondeghili are traditional Milanese meatballs, originally created as a way to reuse leftover boiled meat — a simple idea that turns into something unexpectedly refined.
Soft inside and golden on the outside, they are lightly aromatic thanks to ingredients like lemon zest and nutmeg, and are typically fried in butter and served warm.
They’re a good example of how practical Milanese cooking can be, transforming humble ingredients into a dish that still feels distinctly part of Milanese food culture.
Recipe:
Ingredients (serves 4-5)
- 300 g boiled beef (typically from biancostato)
- 80 g liver mortadella (or regular mortadella)
- 130 g stale bread (crumb only)
- 1 carrot
- 1 white onion
- 1 celery stalk
- 20 g Grana Padano (finely grated)
- 1 egg
- 80 ml whole milk
- Zest of 1 untreated lemon
- 5 g fresh parsley, finely chopped
- Nutmeg, to taste
- Fine salt, to taste
- Black pepper (whole and ground), to taste
For coating and cooking
- 8 tablespoons breadcrumbs
- 250 g butter
Instructions
Start by preparing the meat.
Bring a large pot of salted water to the boil, adding the carrot, celery, and onion (traditionally studded with cloves). Add the beef and cook over medium heat for about 1 hour, or until tender. Skim off any impurities that rise to the surface during cooking.
Once cooked, turn off the heat and allow the meat to cool completely. Then shred it finely and transfer it to a bowl.
Soften the bread crumb in the milk, then add it to the meat.
Remove the casing from the mortadella, slice it, and finely chop it. Add it to the mixture, then pass everything through a meat grinder (or chop very finely by hand or in a food processor).
Add the grated lemon zest and the egg.
Season with grated nutmeg and grated Grana Padano. Mix thoroughly with your hands until the mixture is well combined.
Add the chopped parsley, then adjust seasoning with salt and pepper. Mix again.
Take about 35 g of the mixture and shape it into slightly flattened, oval meatballs. You should obtain around 18.
Coat each one evenly in breadcrumbs.
In a large frying pan, melt the butter over medium heat.
Cook the meatballs in batches, for 1–2 minutes, turning them so they brown evenly on all sides.
Once golden, remove them with a slotted spoon and place on paper towels to absorb any excess butter.
Serve warm.
Ossobuco alla milanese
Ossobuco alla Milanese is one of the most recognisable dishes of Milanese food — slow-cooked, rich, and deeply rooted in tradition.
The name refers to the bone at the centre of each piece, which contains marrow that becomes soft during cooking and gives the dish its distinctive character.
It’s typically served with risotto alla Milanese, and finished with gremolata, which adds a fresh contrast to the richness of the meat.
Recipe:
Ingredients (serves 4)
- 4 veal shanks (cut crosswise, with the bone and marrow in the centre)
- 2 onions
- 2 carrots
- 1 celery stalk
- 80 g butter
- ½ glass dry white wine
- 2 teaspoons tomato paste
- 2 bay leaves
- Meat broth, as needed
- Flour, for dusting
- Salt and black pepper, to taste
For the gremolata
- Zest of ½ lemon
- 60 g fresh parsley, very finely chopped
- 2 garlic cloves
Instructions
Finely chop the onion, carrot, and celery until almost creamy.
In a large pan, melt the butter together with the bay leaves. Add the chopped vegetables and cook gently for a couple of minutes.
Lightly coat the veal shanks in flour on all sides.
Place them in the pan with the vegetables and brown over medium-high heat for a few minutes on each side.
Season with salt and pepper, then pour in the white wine. Let it evaporate completely over a lively heat.
Add a ladle of broth, lower the heat, cover, and let cook gently for about 30 minutes.
Stir in the tomato paste, then add another ladle of broth. Cover again and continue cooking for about 1 hour, until the meat is tender but still attached to the bone.
If the cooking liquid is too thin at the end, remove the meat and let the sauce reduce slightly over the heat.
Gremolata
Finely grate the lemon zest, being careful not to include the white pith.
Finely chop the parsley and garlic together, then combine everything in a small bowl.
To serve
Serve the ossobuco hot, with a few spoonfuls of its cooking sauce, and finish with a light sprinkling of gremolata.
If you’d rather not cook at home and would like to try these Milanese dishes in a typical setting, here are a few places to go.
Trattoria Masuelli
Viale Umbria 80, Milan
Tel +39 370 134 1450
www.menu.masuellitrattoria.com
Trattoria Al Matarel
Via Laura Solera Mantegazza 5, Milan
Tel +39 02 654204
www.almatarel.it
Ristorante El Brellin
Vicolo dei Lavandai (Alzaia Naviglio Grande 14), Milan
Tel +39 02 58101351
www.brellin.com
Osteria del Balabiott
Piazza Vesuvio 13, Milan
Tel +39 02 2316 3376
www.osteriadelbalabiott.com
Al Garghet
Via Selvanesco 36, Milan
Tel +39 02 534698
www.algarghet.it
If you enjoyed this post, you might also like:
Milanese food / Authentic trattorias and osterias in Milan where you can eat heavenly without breaking the bank
This post was all about Milanese food, with a focus on traditional Milanese recipes you can try at home.