Risotto alla milanese
Non-vegetarian
Golden saffron risotto from Milan, stirred until creamy and finished with butter and parmesan. Classic alongside osso buco or on its own.
Risotto alla milanese is an Italian rice dish from Italy, ready in about 37 minutes and made with saffron and short-grain rice. It serves 4 and is rated intermediate to cook.

- Prep
- 10 min
- Cook
- 25 min
- Rest
- 2 min
- Total
- 37 min
- Serves
- 4
- Level
- Intermediate
- Calories
- 574
Method
Step 1
Heat the stock in a saucepan (opens in a new tab) and keep it at a bare simmer. Soak the saffron (opens in a new tab) in a ladleful of the hot stock.
- 5 min
- low heat
- Saucepan (opens in a new tab)

How it looks · Photo: Bachir Mamud on Pexels Step 2
Melt half the butter (opens in a new tab) in a wide heavy pan and cook the onion (opens in a new tab) gently until soft and translucent, without colour.
- 6 min
- medium-low heat
- Dutch oven / casserole pot (opens in a new tab)

How it looks · Photo: Magda Ehlers on Pexels Step 3
Add the rice and stir for 2 minutes until the grains are hot and slightly translucent at the edges. Pour in the wine and let it evaporate.
- 3 min
- medium heat
Step 4
Add hot stock a ladle at a time, stirring often and waiting until each addition is mostly absorbed. Add the saffron (opens in a new tab) liquid halfway through. Cook until the rice is tender with a slight bite and the texture is loose and creamy.
- 18 min
- medium heat
Step 5
Off the heat, beat in the remaining cold butter (opens in a new tab) and the parmesan (opens in a new tab). Cover, rest for 2 minutes, then serve on warm plates — it should flow gently.
- 2 min
About this dish
- Origin
- Lombardy (Milan), Italy · Well documentedMore food from Italy
- Dish
- Lunch · Dinner · Rice dishes · Main courses
- Cooking method
- Simmered, Sautéed
- Taste
- creamy, aromatic / warmly spiced, buttery, umami
- Diet
- No gluten ingredients · No nut ingredientsWith the listed swaps: Vegetarian (lacto-ovo), Eggetarian, Lacto-vegetarian, Pescatarian, Alcohol-freeWorked out from the ingredients. How labels work
All labels
Non-vegetarian · Flexitarian-friendly · No gluten ingredients · Egg-free · No nut ingredients · No added sugar · Pork-free · Beef-free - Cook more with
- Saffron · Short-grain rice · Chicken stock · Butter · Onion · Dry white wine
Allergens
- Contains: Milkfrom butter, parmesan
- May contain: Celeryfrom chicken stock
- Contains, can be adapted: Sulphitesfrom dry white wine
Based on typical versions of these ingredients and not verified allergen-free. Brands differ and cross-contact happens, so always check labels. For severe allergies, follow your clinician’s advice.
Nutrition
574 kcal per serving
Calculated1 serving ≈ 461 g · recipe makes 4
Where the energy comes from
- Protein 14%
- Carbohydrate 57%
- Fat 30%
| Nutrient | Per serving | Per 100 g* |
|---|---|---|
| Energy | 574 kcal | 125 kcal |
| Protein | 18.6 g | 4 g |
| Carbohydrate | 77.6 g | 16.9 g |
| Net carbohydrate | — | — |
| Sugars | — | — |
| Added sugars | 0 g | 0 g |
| Fibre | — | — |
| Fat | 17.9 g | 3.9 g |
| Saturated fat | 9.7 g | 2.1 g |
| Trans fat | — | — |
| Cholesterol | 46 mg | 10 mg |
| Sodium | 980 mg | 213 mg |
| Salt equivalent | 2.5 g | 0.5 g |
Vitamins & minerals per serving
- Potassium
- 451 mg
- Calcium
- 201 mg
- Iron
- 1.5 mg
- Magnesium
- 43 mg
- Vitamin A (RAE)
- —
- Vitamin C
- 3 mg
- Vitamin D
- 0.1 µg
- Vitamin B12
- 0.2 µg
- Folate (DFE)
- 27 µg
How these numbers were made
- Calculated from USDA FoodData Central (SR Legacy) per-100 g values and the listed quantities.
- *Per 100 g of combined raw ingredients; the cooked dish may weigh more or less.
- “—” means the value isn’t known for enough of the ingredients; it is never zero by default.
- Values are estimates for guidance, not for medical dosing. U.S. Department of Agriculture, Agricultural Research Service. FoodData Central, 2019. fdc.nal.usda.gov.
Good to know
Tips
- The final vigorous beating with cold butter and cheese (mantecatura) is what makes it creamy.
Common mistakes
- Cold stock, which stalls the cooking and gives a gluey texture.
- Overcooking until stiff — risotto should spread on the plate.
Serve with
- Traditionally served with osso buco (braised veal shin).
Food safety
- Cooked rice should be cooled quickly and not left at room temperature.
Storage
- Refrigerate leftovers within 1 hour; use within 1 day.
Reheating
- Leftovers are best made into arancini or a crisp risotto cake (risotto al salto).
Variations
- With bone marrow: The classic Milanese version starts with beef bone marrow melted with the butter.
Original editorial recipe · FriendsPantry editorial · Not yet independently reviewed · Added · Updated
Recipe DNA
How this dish is built
Grouped by each ingredient’s role in the dish. Each band’s width is its share of the dish by weight. Choose a component to see what it does.
Reviews & corrections
Reviews come from signed-in cooks and appear after a moderator checks them. We never show made-up ratings.
You might also like

Lasagne alla bolognese
Italian · 3 h · 547 kcal
Arancini
Italian · 3 h 20 min · 285 kcal · Contains egg
Osso buco alla milanese
Italian · 2 h 20 min · 476 kcal
Pasta alla genovese (Neapolitan onion and beef ragù)
Italian · 3 h 55 min · 613 kcal