Lamb Biryani With Saffron, Yogurt, and Caramelized Onions Recipe

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

A large bowl of lamb biryani with saffron and caramelized onions by Nik Sharma
Video: Nik Sharma/Serious Eats; Photographs: Nik Sharma

Why It 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 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 pot of biryani with caramelized onions on top as garnish

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 Facts

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

Rate & Comment


  • 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 chili (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 the lamb in a 1 gallon (3.8L) ziptop bag. In a medium bowl, mix the yogurt, garlic, ginger, and 1 1/2 teaspoons salt until combined, pour the yogurt mixture over the lamb, seal the bag, and shake the bag to coat the lamb well. Leave the ziptop bag in the refrigerator to marinate overnight.

    lamb in a plastic bag with yogurt marinade

    Nik Sharma

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

    caramelizing onions in a cast iron skillet

    Nik Sharma

  3. Reduce the heat to low. Remove half of the caramelized onions and reserve to use as garnish for the biryani. Add 3 green cardamom pods, cinnamon, cloves, bay leaves, garam masala, Kashmiri chili, mace, and turmeric, and sauté just until spices become fragrant, 30 to 45 seconds. Add the lamb along with the yogurt marinade, the water or stock, and the cilantro, mint, and green chili. Stir to mix well, increase the 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 the lamb is completely tender.

    Cooking lamb with spices, marinade and caramelized onions for lamb biryani

    Nik Sharma

  4. Meanwhile, as the lamb cooks, prepare the rice. Pick over the the rice for any debris, then place it in a fine mesh strainer and rinse under cold running water, until the runoff is no longer cloudy; drain well. Place the rice in a bowl and cover with 4 cups (960ml) water and let stand for 30 minutes. Strain the rice, discarding soaking water. In a large saucepan, combine rice with 4 cups cold water, lemon juice, the remaining 1 1/2 teaspoons kosher salt, the remaining 2 green cardamom pods, and the remaining 2 teaspoons of ghee or oil and bring to a boil over medium heat. Boil for 2 minutes and then strain the 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.

    Cooked rice for lamb biryani

    Nik Sharma

  5. When the lamb is tender, remove lid and increase the heat to medium, stirring often to prevent scorching, and cook until the 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 the rice out in an even layer over the meat in the Dutch oven.

    Adding rice to Dutch oven with meat and marinade for biryani

    Nik Sharma

  6. Set oven rack at the middle position and heat the 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 the milk just until it starts to bubble, then turn off the heat. Add the ground saffron and remaining saffron strands to the hot milk and let steep for 10 minutes.

    Covering biryani with aluminum foil

    Nik Sharma

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

    Allowing rice to steam for lamb biryani

    Nik Sharma

Special Equipment

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


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)
484 Calories
25g Fat
40g Carbs
26g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 4 to 6
Amount per serving
Calories 484
% Daily Value*
Total Fat 25g 32%
Saturated Fat 13g 64%
Cholesterol 102mg 34%
Sodium 734mg 32%
Total Carbohydrate 40g 14%
Dietary Fiber 3g 12%
Total Sugars 9g
Protein 26g
Vitamin C 14mg 68%
Calcium 135mg 10%
Iron 4mg 21%
Potassium 699mg 15%
*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.)