
Tomato and Bean Family Biryani
A hearty vegetarian biryani layered with fluffy basmati rice, tender white beans, and a fragrant tomato-onion masala. This stovetop biryani brings together the aromatic spices and cooking technique of traditional Indian biryani in a plant-forward version that feeds a family. The rice cooks in its own steam while layered with the spiced beans and caramelized onions, resulting in distinct grains infused with warm spices.
- Prep
- 25 min
- Cook
- 35 min
- Wait
- 20 min
- Total
- 1 hr 20 min
- Makes
- 6 servings (about 2 cups each)
Steps
Before you start
- Measure and mince all aromatics before you begin cooking
- Soak basmati rice in water for 30 minutes, then drain well
- Have a heavy-bottomed pot with a tight-fitting lid (Dutch oven or biryani pot ideal)
- Prepare white beans (canned is fine, drained and rinsed; or use 1½ cups cooked dried beans)
Toast whole spices
- Heat 1 tablespoon of the oil in your large heavy-bottomed pot over medium heat.
- Add the cumin seeds, cinnamon stick, cardamom pods, bay leaves, and black peppercorns.
- Toast for 1–2 minutes, stirring constantly, until the spices become fragrant and the cumin seeds stop popping.
- You should smell warm, toasted aromas; do not let them burn or they will taste bitter.
+ Show details− Hide details
Ready when: Spices are fragrant and aromatic, cumin seeds stop popping
Tip: Work quickly in this step—burnt spices ruin the entire dish. Have your onions ready to add immediately.
Caramelize onions
- Add the remaining oil (about 7 tablespoons) to the pot along with the sliced onions.
- Stir well to coat the onions with oil and toasted spices.
- Cook over medium heat, stirring occasionally, for 12–15 minutes until the onions turn golden brown and become soft and caramelized.
- They should darken gradually; if they're browning too quickly, lower the heat to medium-low.
- The onions are ready when they smell sweet and nutty.
+ Show details− Hide details
Ready when: Onions are golden brown, soft, and smell sweet and nutty
Tip: Stir every 2–3 minutes to prevent sticking on the bottom. Do not rush this step; proper caramelization builds the biryani's flavor base.
Add aromatics and spices
- Add the garlic-ginger paste and minced green chiles (if using) to the caramelized onions.
- Stir and cook for 1 minute until the raw smell fades and the paste turns fragrant.
- Then add the turmeric powder, ground coriander, and red chili powder.
- Stir for another 30 seconds so the spice powders bloom in the oil.
+ Show details− Hide details
Ready when: Spice paste is fragrant and garlic-ginger smell has mellowed
Tip: Add the ground spices quickly after the paste to prevent them from burning. Keep stirring so nothing sticks to the pot.
Add tomatoes and beans
- Pour the crushed tomatoes into the pot, stirring well to combine with the spiced onions.
- Add the drained white beans and stir gently to distribute them evenly.
- Cook over medium heat for 5 minutes, stirring occasionally, until the mixture comes together and the tomatoes begin to thicken slightly.
- Taste and add salt to your preference—start with 1½ teaspoons.
+ Show details− Hide details
Ready when: Tomato sauce is thick and beans are heated through
Tip: Stir gently when adding beans so you don't break them apart. Taste here and adjust seasoning before adding rice.
Add water and bring to boil
- Pour the 4½ cups of water into the pot over the tomato-bean mixture.
- Increase the heat to medium-high and bring the liquid to a rolling boil.
- Let it boil uncovered for 2 minutes, stirring once, so the water fully mixes with the spiced base and comes up to full temperature.
+ Show details− Hide details
Ready when: Liquid is at a rolling boil
Tip: Do not skip boiling; this ensures even heat distribution before the rice is added.
Layer in rice
- Carefully add the drained soaked basmati rice to the boiling liquid, spreading it evenly across the surface with a wooden spoon.
- Do not stir vigorously; gently fold the rice once or twice to ensure it's submerged.
- The liquid should just cover the rice—if not, add a bit more hot water.
- Return the pot to a boil over medium-high heat, uncovered, for 2 minutes.
+ Show details− Hide details
Ready when: Liquid returns to boil and rice is visible on top
Tip: Gentle handling prevents breaking the rice grains. Avoid constant stirring once rice is in—stir only once or twice to submerge it.
Reduce heat and steam biryani
- Reduce the heat to low and cover the pot tightly with its lid.
- If the lid is not a perfect seal, place aluminum foil under the lid before closing it.
- Cook undisturbed for 18–20 minutes.
- The rice should cook in the steam, absorbing the spiced tomato-bean broth.
- Do not lift the lid during cooking—this releases steam and can cause the rice to cook unevenly.
+ Show details− Hide details
Ready when: Rice is tender and fluffy, liquid is fully absorbed, no water pooling
Tip: Resist the urge to peek! A tight lid is essential for proper steam cooking. If steam escapes around the edges, cover the lid with foil.
Check doneness and rest
- After 18–20 minutes, turn off the heat and let the biryani rest, covered, for 5 minutes.
- Carefully lift the lid (steam will escape—be careful of your face).
- The rice should be tender and fluffy, and all liquid should be absorbed.
- If you see water pooling at the bottom, re-cover the pot and let it sit another 2–3 minutes.
- If the rice is still firm or liquid remains, recover and cook 2–3 minutes longer on low heat.
+ Show details− Hide details
Ready when: Rice is tender and fluffy, all liquid is absorbed, no pooling water
Tip: If you do peek at the 15-minute mark out of worry, keep the lid off for no more than 5 seconds, or you'll let too much steam escape.
Fluff and garnish
- Using a fork, gently fluff the rice by stirring it through the pot once or twice, breaking up any clumps without mashing the grains.
- Let the biryani settle for 1 minute.
- Transfer to a serving platter or bowl.
- Top generously with fresh cilantro and mint (if using) and crispy fried onions (if using).
- Serve hot.
+ Show details− Hide details
Ready when: Rice is fluffy and fully separated
Tip: Use a fork, not a spoon, to fluff rice so you don't compress the grains and release excess starch.
Good to know
Tips
- Soaking the basmati rice for 30 minutes before cooking ensures even, fluffy grains. Drain well so excess water doesn't dilute your broth.
- The key to great biryani is a tight-fitting lid so steam doesn't escape. If your pot lid is loose, use aluminum foil as a seal between the pot and lid.
- For deeper color and extra richness, fry the onions in oil until crispy and dark (about 15 minutes), then reserve half to caramelize with spices and half to scatter on top before serving. This is the traditional approach.
- Biryani is forgiving with beans and vegetables—you can add diced carrots, peas, or bell peppers in step 4 if you like. Add them to the tomato-bean mixture and cook them for 3–4 minutes before adding water.
Make ahead
You can prepare the spice-onion-tomato-bean base (through step 4) up to 2 days ahead. Cool, cover, and refrigerate. Reheat over medium heat until steaming before adding rice and water.
Storage & reheating
Store leftover biryani in an airtight container in the refrigerator for up to 4 days. To reheat, transfer to a pot, add 2–3 tablespoons of water, cover, and warm over low heat for 5–7 minutes, stirring gently. You can also reheat individual portions in the microwave (covered, 1–2 minutes) but stovetop reheating keeps the rice fluffier. Biryani does not freeze well due to the rice texture, so best consumed within 4 days of cooking.
Substitutions
- canned white beans (cannellini or great northern) → Black chickpeas (kala chana), red kidney beans, or mixed legumes. Use the same total quantity drained. Chickpeas add a nuttier flavor; red beans keep the dish lighter and more vibrant.
- canned crushed tomatoes → Fresh ripe tomatoes (about 2 lbs, roughly chopped) or 1½ cups tomato sauce thinned with ½ cup water. Fresh tomatoes yield a brighter flavor but require 10 extra minutes of cooking to break down and thicken. Canned is more convenient and consistent.
- basmati rice, uncooked → Jasmine rice or long-grain white rice. Basmati is traditional for its delicate flavor and separate grains. Jasmine works well and cooks in the same time. Standard long-grain white rice may cook slightly faster.
- vegetable oil or ghee → Ghee, coconut oil, or mustard oil. Ghee is traditional and adds richness; coconut oil works for a lighter biryani; mustard oil is traditional in some regions.
More biryani
See all →Find more like this
- Meal
- Dinner
- Cuisine
- Indian
- Main ingredient
- Basmati RiceWhite BeansTomatoes
- Method
- Stovetop





