Lamb Biryani With Saffron, Yogurt, and Caramelized Onions Recipe

A celebration of aroma, color, and flavor, with perfectly cooked, fluffy grains of scented basmati rice and tender chunks of spiced lamb.

Overhead view of lamb biryani on an oval platter.

Serious Eats / Qi Ai

Why This Recipe Works

  • Marinating the lamb in yogurt and salt adds flavor, increases tenderness, and reduces cooking time.
  • Caramelized onions provide a deep flavor base and a flavorful garnish.
  • Blooming spices in hot oil heightens their aroma and flavor.
  • Par-cooking the rice in acidulated water with oil improves its texture and prevents rice grains from clumping together.
  • Blooming saffron in warm milk draws out oil-soluble pigments and flavors.

Biryanis comprise a category of highly aromatic rice and meat dishes, typically served during special occasions; when I was growing up my family would eat biryani during the festival of Eid or at other celebrations. From a cook’s and a science standpoint, I find biryanis to be interesting because their emphasis lies in carefully building up layers of aromas and flavors and celebrating combinations of textures and colors—in a good biryani, every aspect of the dish is splendidly executed. Let’s take a closer look at what makes a biryani so special.

What Is Biryani?

Biryani is a South Asian one-pot dish in which lamb, mutton, beef, chicken, seafood, or a mixture of vegetables is layered with rice. The layering technique is what differentiates biryani from other rice dishes, like a pilaf or pulao.

There are a couple of different ways to prepare biryani. Sometimes the raw meat is cooked with the rice; this is called the "kacchi" method (kacchi is Hindi for "raw"). In others, the meat is cooked separately, as I do in this recipe; this is called the "pakki" method (pakki is Hindi for "cooked"). Regardless of the method, aromas are infused into the meat and the rice using a combination of spices, herbs, and extracts, while saffron threads and turmeric add bright hues of orange and yellow to the otherwise white backdrop of long-grain rice. The result is a highly aromatic and colorful dish of meat and rice. There are a lot of variations of biryani—like Bombay biryani, Hyderbadi biryani, etc.—as recipes and taste preferences can be quite different from region to region and even household to household.

Building Flavors in Biryani

The Yogurt Marinade

The first step in preparing my lamb biryani involves marinating the meat in a mixture of yogurt, salt, ginger, and garlic in the refrigerator overnight. Yogurt is a mixture of lactic acid, fat, enzymes, and proteins, all of which work in concert to tenderize the meat and imbue it with flavor. Some recipes will utilize raw papaya as a meat tenderizer for tougher cuts of beef, mutton, or lamb, as it contains the tenderizing enzyme papain, but I have found it unnecessary.

When testing the recipe, I was curious to see if marinating the meat in yogurt affected the time needed for the lamb to become tender, and, on average, marinating the meat in yogurt and salt overnight in the refrigerator cut back my cooking time by at least an hour. You can use either Greek yogurt or regular plain yogurt for marinating the meat; I haven’t noticed any differences between the two, but you will need to add about an extra half cup of water or stock if you use Greek yogurt to ensure you have enough cooking liquid.


The next important stage of flavor development is the browning of the onions. As the onions heat, caramelization (a flavor-producing reaction that involves sugars like fructose and glucose) and the Maillard reaction kick in, which help produce bittersweet notes and brown colored pigments in the sugars. (Onions are rich in long chains or polymers called fructans, made up of the sugar fructose, and also contain glucose and fructose.) The darker the browning, the stronger the flavor of the onions, but be careful: if they turn dark black, they will taste unpleasantly bitter.

Basmati Rice

Close up of raw basmati rice.

Serious Eats / Vicky Wasik

For the layer of rice, it’s important that you use basmati, a long-grain, aromatic rice variety commonly used in the subcontinent. Basmati rice brands will often describe their product as "aged," which gives a sense of the quality. One of the aroma molecules responsible for the aroma of basmati rice is 2-AP (2-acetyl-1-pyrroline), and the aroma of basmati tends to get stronger as the uncooked grains of rice are stored; typically basmati rice is aged for up to a year or more. (Interestingly, 2-AP is also present in the pandan water used to add aromatic complexity to biryanis). Aged basmati rice also absorbs water much better: the grains don’t stick as much when cooking, and the cooked grains are firmer.

Basmati rice will expand in length as it absorbs water and cooks, but it won’t get as puffy as short-grain rice or turn sticky (this is because at least 73% of the starch content in basmati rice is made up of amylose, which is present at very low levels in short-grain rice varieties). When I cook the rice, I add a little bit of citric acid, in the form of lemon or lime juice, and fat to the water to further help the rice from overcooking and splitting— the citric acid works primarily on the starch while the fat helps coat the grains and prevents them from sticking.

Adding Aroma and Color

Aromas and colors are a very important component of biryani preparation. Spices, like cardamom, cinnamon, and mace, and fresh herbs, like cilantro and mint, imbue the meat with their aromas as it cooks. There are two more aromatic ingredients of significance added to the biryani: rosewater and pandan (also called screwpine or kewra) water. These are sprinkled over the rice just before it steams, and the combination results in a highly fragrant biryani.

For color, the curcumin pigment in the turmeric that’s added to the meat will stain some of the rice grains yellow. A second source of color comes from the delicate threads of saffron, which contain crocetin, a fat-soluble pigment that is extracted by the fat present in hot milk; the milk is also sprinkled over the layer of rice along with the rosewater and pandan water. To get a richer color from the saffron, I grind a few threads separately and then add them to the milk to get a stronger extract.

Finishing Biryani With Steam

Once the meat and rice are layered together, the entire pot is sealed tight with a double layer of aluminum foil. This technique is called "dum pukht," which means "breathe and cook" in Hindi; the idea is that the steam produced by the various aromatic liquids and from the marinade and the meat rises, further tenderizing the meat and rice, and then condenses, keeping everything in the pot from drying out. The classic method involves creating a seal by caking a simple dough around the cooking vessel’s lid, but the foil method (which is what I’ve shared here) suffices (and, admittedly, this is the method I use often). A thick layer of cloth wrapped around the mouth of the pot can also be used to create the seal. A heavy Dutch oven or saucepan with a heavy bottom with a heavy lid works great; however, a clay pot with a lid can also be used.

Biryani Garnishes

Overhead view of a pot of biryani with caramelized onions on top as garnish.

Serious Eats / Nik Sharma

In this version, which might seem a bit restrained, I reserve some of the browned onions and add those as a garnish over the rice before I steam it, but you can do a lot more. Biryanis can be studded with various toppings, including quartered or halved hard-boiled eggs, thick quarters of fried potatoes, or fried nuts such as cashews or almonds.

One final note on biryanis: take time to appreciate the reveal as the pot of rice is unwrapped. I find that first breath of the perfume emanating from the pot as it’s opened to reveal the colorful dish within to be the most exciting and magical part of the biryani experience.

How to Serve Biryani

I like to serve biryanis straight out of the pot because I enjoy using a spoon to reveal the cooked meat under the layer of rice. However, a biryani can be served on a large platter; just make sure not to overmix the rice before serving, since doing so obscures the variety of color the rice acquires during the cooking process. While the biryani can be served with plain unsweetened yogurt, my carrot raita would also be a wonderful accompaniment to this dish. I prefer to leave the whole spices in the cooked biryani, but if you like you can fish them out before serving.


Watch Now: How to Make Lamb Biryani

July 2020

Recipe Details

Lamb Biryani With Saffron, Yogurt, and Caramelized Onions Recipe

Prep 5 mins
Cook 2 hrs 5 mins
Active 90 mins
Marinating Time 8 hrs
Total 10 hrs 10 mins
Serves 4 to 6 servings

A celebration of aroma, color, and flavor, with perfectly cooked, fluffy grains of scented basmati rice and tender chunks of spiced lamb.


  • 2 pounds (910g) boneless leg of lamb, trimmed of excess fat and cut into 1-inch (2cm) cubes

  • 1 cup plain, unsweetened full-fat yogurt

  • 6 medium garlic cloves, peeled and finely grated

  • One 2inch piece fresh ginger, peeled and grated

  • 3 teaspoons Diamond Crystal kosher salt, divided; if using table salt, use half as much by volume

  • 1/4 cup (60 ml) plus 2 teaspoons (10ml) ghee or neutral oil, such as grapeseed, divided

  • 2 large yellow or white onions (26 ounces; 750g total), sliced thinly

  • 5 green cardamom pods, lightly cracked, divided

  • 1 cinnamon stick

  • 4 cloves

  • 2 dried bay leaves

  • 1 teaspoon garam masala, store-bought or homemade

  • 1 teaspoon ground Kashmiri chile (see note)

  • 1/2 teaspoon ground mace

  • 1/2 teaspoon ground turmeric

  • 1 cup (240ml) water or low-sodium stock (lamb, beef, or chicken)

  • 2 cups (400g) basmati rice

  • 1/4 cup (60ml) fresh lemon or lime juice

  • 1 bunch fresh cilantro leaves and tender stems, chopped

  • 1 bunch fresh mint leaves, chopped

  • 1 fresh green chile, such as a serrano or Thai bird, minced

  • 1/4 cup (60ml) whole milk

  • 20 strands of saffron, divided

  • 2 teaspoons rosewater

  • 2 teaspoons pandan (kewra/screwpine) water (see note)


  1. Place lamb in a 1 gallon (3.8L) zip-top bag. In a medium bowl, mix yogurt, garlic, ginger, and 1 1/2 teaspoons salt until combined, pour yogurt mixture over lamb, seal bag, and shake bag to coat lamb well. Leave zip-top bag in refrigerator to marinate overnight.

    Overhead view of meat in a yogurt marinade in a plastic bag.

    Serious Eats / Qi Ai

  2. Heat 1/4 cup (60ml) ghee or oil in a Dutch oven or saucepan with a heavy bottom over medium heat. Add onions, season with a pinch of salt, and cook, stirring occasionally, until onions caramelize and turn dark brown (but not black), about 25 to 30 minutes.

    Two Image collage of caramelizing onions in a Dutch oven.

    Serious Eats / Qi Ai

  3. Reduce heat to low. Remove half of the caramelized onions and reserve to use as garnish for biryani. Add 3 green cardamom pods, cinnamon, cloves, bay leaves, garam masala, Kashmiri chile, mace, and turmeric, and sauté just until spices become fragrant, 30 to 45 seconds. Add lamb along with yogurt marinade, water or stock, cilantro, mint, and green chile. Stir to mix well, increase heat to medium-high, and bring liquid to a boil. Reduce heat to low, cover with lid, and cook for 30 to 45 minutes, stirring occasionally, until lamb is completely tender.

    Four image collage of adding spices, lamb, herbs, and stock and cooking lamb in Dutch oven

    Serious Eats / Qi Ai

  4. Meanwhile, as lamb cooks, prepare rice. Pick over rice for any debris, then place it in a fine-mesh strainer and rinse under cold running water, until runoff is no longer cloudy; drain well. Place rice in a bowl and cover with 4 cups (960ml) water and let stand for 30 minutes. Strain rice, discarding soaking water. In a large saucepan, combine rice with 4 cups cold water, lemon juice, remaining 1 1/2 teaspoons kosher salt, remaining 2 green cardamom pods, and remaining 2 teaspoons of ghee or oil and bring to a boil over medium heat. Boil for 2 minutes and then strain rice; discard cooking water. It will be partially cooked—if you break a grain of rice, you will see an outer translucent ring and a tiny, opaque inner ring.

    Four image collage of rinsing rice, soaking it in a bowl, cooking rice, and cooked rice in a pot.

    Serious Eats / Qi Ai

  5. When lamb is tender, remove lid and increase heat to medium, stirring often to prevent scorching, and cook until liquid starts to thicken and reduces to about 1 1/2 cups (360ml), about 5 minutes. Remove from heat. Using a clean, large wooden spoon or spatula, spread rice out in an even layer over meat in Dutch oven.

    Two image collage of cooked lamb in Dutch oven before and after rice is added

    Serious Eats / Qi Ai

  6. Set oven rack at the middle position and heat oven to 350°F (180°C). Place half the saffron threads in a mortar and pestle and grind to a fine powder. In a small saucepan placed over low heat, warm milk just until it starts to bubble, then turn off heat. Add ground saffron and remaining saffron strands to hot milk and let steep for 10 minutes.

    Two image collage of saffron in a mortar and pestle and being added to a pot of milk.

    Serious Eats / Qi Ai

  7. Sprinkle saffron-infused milk over rice, followed by rosewater and pandan water. Garnish top of the rice with reserved caramelized onions. Cover Dutch oven with two sheets of aluminum foil and crimp overhang to form tight seal, place lid over foil, and place Dutch oven in preheated oven for 20 minutes to let rice steam. Remove from oven and let stand for 5 minutes. Uncover pot and carefully peel off aluminum seal. Use a fork to loosen rice a little and serve immediately straight from Dutch oven. Alternatively, biryani can be transferred to a platter and served.

    Four image collage of adding saffron mixture, onions, covering Dutch oven with foil and fluffing finished biryani.

    Serious Eats / Qi Ai

Special Equipment

Dutch oven, 3-quart saucepan, 2-quart saucepan, fine-mesh strainer, mortar and pestle, zip-top bag


The ground Kashimiri chile can be replaced with a combination of 3/4 teaspoon ground smoked sweet paprika and 1/2 teaspoon ground cayenne.

Pandan water can be purchased at specialty food stores or online.

Make-Ahead and Storage

Lamb biryani is best served immediately, but will keep in an airtight container for up to one week in the refrigerator.

Read More

Nutrition Facts (per serving)
581 Calories
31g Fat
40g Carbs
35g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 4 to 6
Amount per serving
Calories 581
% Daily Value*
Total Fat 31g 40%
Saturated Fat 15g 77%
Cholesterol 138mg 46%
Sodium 759mg 33%
Total Carbohydrate 40g 14%
Dietary Fiber 3g 12%
Total Sugars 9g
Protein 35g
Vitamin C 14mg 68%
Calcium 139mg 11%
Iron 5mg 25%
Potassium 817mg 17%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)