Risotto alla Milanese is a timeless Italian classic from Milan, prized for its silky texture and deep, aromatic flavor. The star ingredient is saffron, which infuses the rice with a warm golden color and a subtle, floral earthiness. This risotto is elegant enough to accompany osso buco yet versatile enough to pair with grilled chicken, lamb chops, or pan-seared scallops—making it a perfect side or centerpiece for any special meal.

The technique behind a great Risotto alla Milanese is straightforward but requires attention: use a short-grain rice like Arborio, keep your broth warm, and add it gradually while stirring so the rice releases its starch and becomes luxuriously creamy. Blooming the saffron in white wine first helps release its color and flavor, ensuring the risotto has that signature hue and aroma. Finish with butter and freshly grated Parmesan for richness and a glossy finish.

Ingredients
- 4 cups chicken or vegetable broth
- 1 teaspoon saffron threads
- 1/2 cup dry white wine
- 2 tablespoons olive oil
- 1 tablespoon unsalted butter
- 1 cup finely diced yellow onion
- 1/2 teaspoon kosher salt
- 1 1/2 cups Arborio rice
- 1 cup freshly grated Parmesan cheese
- Salt and black pepper, to taste
- Chopped fresh parsley (optional, for garnish)

Step-by-step Instructions
Step 1: Prepare the broth
In a saucepan, bring the chicken or vegetable broth to a gentle simmer. Once it reaches a simmer, lower the heat to keep it hot but not boiling. Keeping the broth warm is essential so the rice cooks evenly and the temperature of the pot remains consistent.
Step 2: Bloom the saffron
Place the saffron threads in a small bowl and pour the dry white wine over them. Let the saffron steep for about 10 minutes. This releases the threads’ color and aroma, creating a fragrant saffron-infused wine that will tint the rice beautifully.
Step 3: Sauté the onion
In a large, heavy-bottomed pot or wide skillet, heat the olive oil and butter over medium heat. Add the finely diced yellow onion and kosher salt. Sauté until the onion becomes translucent, about 4–6 minutes, taking care not to brown it; a gentle sweat is what you want.
Step 4: Toast the rice
Add the Arborio rice to the pot and stir to coat every grain with oil and butter. Cook the rice, stirring, for 2–3 minutes. The grains should become slightly translucent at the edges and have a faintly toasted aroma—this step helps the rice hold its texture as it cooks.
Step 5: Add the saffron wine
Pour in the saffron-infused white wine and stir continuously until the liquid is mostly absorbed, about 1–2 minutes. This initial deglaze adds flavor and begins the cooking process.
Step 6: Add the broth gradually
Once the wine has been absorbed, add the warm broth one ladleful at a time, stirring frequently. Allow the rice to absorb most of the liquid before adding the next ladle. Continue this cycle—add, stir, absorb—for about 18–20 minutes, until the rice is tender yet slightly firm at the center (al dente) and the overall texture is creamy.
Step 7: Finish and serve
When the rice is al dente and has a creamy consistency, remove the pot from the heat. Stir in the grated Parmesan cheese until melted and well combined. Taste and season with salt and freshly ground black pepper. Serve immediately, garnished with chopped parsley if you like.

Recipe Tips and Variations
Use a good-quality saffron for the best flavor and color. When possible, use homemade or low-sodium broth so you can control the salt level. If you prefer a dairy-free version, substitute plant-based butter and omit the Parmesan; the rice’s natural starch will still yield a creamy result. For a richer finish, swirl in an extra tablespoon of butter (mantecatura) at the end before serving.
Pairings
Risotto alla Milanese is traditionally served with Osso Buco but complements many proteins: roasted or grilled chicken, lamb chops, pan-seared scallops, or simply a simple green salad for a lighter meal. The saffron’s warm flavor pairs well with rich, savory dishes.
Recipe FAQs
While risotto requires attention—particularly stirring as you add broth—the active cooking time is about 20–25 minutes. The mindful process produces a creamy, restaurant-quality dish worth the effort.
Yes. Use dairy-free butter and skip the Parmesan. The starch released from the rice creates plenty of creaminess on its own, resulting in a satisfying dairy-free risotto.
Nutrition (per serving)
Calories: 339 kcal; Carbohydrates: 44 g; Protein: 11 g; Fat: 11 g; Saturated Fat: 5 g; Sodium: 1045 mg; Fiber: 2 g. Nutrition information is an approximation and will vary based on exact ingredients and portion sizes.
Additional Info
Author: Alex Snodgrass. Servings: 6.
Food Photography and Styling by Eat Love Eats.
