Quick Recipe Version (TL;DR)
Quick Ingredients
- 8 large eggs
- 2 tablespoons neutral cooking oil, divided
- 1 large yellow onion, finely chopped
- 4 garlic cloves, minced
- 1 tablespoon finely grated fresh ginger
- 1 can (14 ounces) crushed tomatoes
- 1 teaspoon ground cumin
- 2 teaspoons ground coriander
- 1/2 teaspoon ground turmeric
- 1/2 teaspoon Kashmiri chili powder or mild cayenne
- 1 1/2 teaspoons garam masala
- 1/4 teaspoon ground black pepper
- 3/4 cup water
- 1/2 cup heavy cream
- 1 1/4 teaspoons fine salt, divided
- 1 tablespoon fresh lime juice
- 1/4 cup chopped fresh cilantro
- 1 1/2 cups basmati rice and 2 1/4 cups water
Do This
- 1. Boil the eggs for 10 minutes, chill them in ice water for 5 minutes, peel, and score lightly.
- 2. Simmer the basmati rice with 2 1/4 cups water and 1/2 teaspoon salt for 15 minutes; rest, covered, for 10 minutes.
- 3. Sear the eggs in 1 teaspoon oil over medium-high heat for 2 to 3 minutes; transfer to a plate.
- 4. Cook the onion in the remaining oil with 1/4 teaspoon salt for 8 to 10 minutes.
- 5. Add garlic, ginger, cumin, coriander, turmeric, and chili powder; cook for 90 seconds.
- 6. Add tomatoes, black pepper, remaining salt, and 3/4 cup water; simmer until thick and glossy.
- 7. Simmer the eggs in the gravy, then stir in cream and garam masala. Finish with lime and cilantro; serve with rice.
Why You’ll Love This Recipe
- The creamy tomato-onion gravy is warmly spiced, rich, and deeply flavorful without being difficult to make.
- Hard-boiled eggs turn an affordable pantry meal into a satisfying, protein-rich main course.
- The curry and basmati rice cook at the same time, making this practical for a weeknight dinner.
- You can easily adjust the heat or replace the cream to suit your household.
Grocery List
- Produce: 1 large yellow onion, 1 head garlic, 1 piece fresh ginger, 1 lime, and 1 small bunch fresh cilantro
- Dairy: 8 large eggs and 1/2 cup heavy cream
- Pantry: Basmati rice, one 14-ounce can crushed tomatoes, neutral cooking oil, garam masala, ground cumin, ground coriander, ground turmeric, Kashmiri chili powder or mild cayenne, black pepper, and fine salt
Full Ingredients
For the Eggs and Curry Gravy
- 8 large eggs
- 2 tablespoons neutral cooking oil, such as avocado, canola, or vegetable oil, divided
- 1 large yellow onion, finely chopped, about 1 1/2 cups
- 4 garlic cloves, minced, about 1 tablespoon
- 1 tablespoon finely grated fresh ginger
- 1 teaspoon ground cumin
- 2 teaspoons ground coriander
- 1/2 teaspoon ground turmeric
- 1/2 teaspoon Kashmiri chili powder or mild cayenne pepper
- 1 can (14 ounces) crushed tomatoes
- 1/4 teaspoon ground black pepper
- 3/4 teaspoon fine salt, divided
- 3/4 cup water
- 1/2 cup heavy cream, preferably at room temperature
- 1 1/2 teaspoons garam masala
- 1 tablespoon fresh lime juice
For the Basmati Rice
- 1 1/2 cups basmati rice
- 2 1/4 cups water
- 1/2 teaspoon fine salt
For Serving
- 1/4 cup loosely packed chopped fresh cilantro
- Prepared basmati rice
- Optional alternative: 4 warm naan breads in place of the rice

Step-by-Step Instructions
Step 1: Hard-boil and peel the eggs
Fill a medium saucepan with enough water to cover the eggs by at least 1 inch. Bring the water to a full boil over high heat, approximately 212°F or 100°C at sea level. Carefully lower the eggs into the water with a slotted spoon. Reduce the heat to medium so the water maintains a gentle, steady boil, and cook for exactly 10 minutes.
Transfer the eggs immediately to a bowl of ice water and let them cool for 5 minutes. Peel the eggs under cool running water, then pat them completely dry. Using a small knife, cut three or four very shallow slits into the surface of each egg. The cuts should be about 1/8 inch deep so the sauce can cling to the eggs without cutting into the yolks.
Step 2: Cook the basmati rice
While the eggs cool, place the basmati rice in a fine-mesh strainer and rinse under cool water for 1 to 2 minutes, or until the water runs mostly clear. Combine the rinsed rice, 2 1/4 cups water, and 1/2 teaspoon salt in a medium saucepan.
Bring to a full boil over medium-high heat. Stir once, cover tightly, and reduce the heat to low. Cook without lifting the lid for 15 minutes. Remove the pan from the heat and let the rice rest, still covered, for 10 minutes. Fluff gently with a fork before serving.
Step 3: Lightly sear the eggs
Heat 1 teaspoon of the oil in a large, deep skillet or Dutch oven over medium-high heat. Add the dry, peeled eggs and cook for 2 to 3 minutes, carefully turning them until they develop a few golden spots. The eggs may sputter slightly, so use long-handled tongs and turn them gently. Transfer the eggs to a clean plate.
Step 4: Brown the onion
Reduce the heat to medium. Add the remaining 1 tablespoon plus 2 teaspoons oil to the same skillet, followed by the chopped onion and 1/4 teaspoon of the curry’s salt. Cook for 8 to 10 minutes, stirring every minute or two, until the onion is soft and golden around the edges. If it begins to stick, add 1 tablespoon of the measured 3/4 cup water and scrape the bottom of the pan.
Step 5: Bloom the aromatics and ground spices
Add the minced garlic and grated ginger to the onion. Cook for 1 minute, stirring continuously, until fragrant. Add the cumin, coriander, turmeric, and Kashmiri chili powder. Stir constantly for another 30 seconds. Briefly cooking the spices in oil releases their aroma, but do not let them darken or burn.
Step 6: Build the tomato-onion gravy
Pour in the crushed tomatoes, then add the black pepper and the remaining 1/2 teaspoon curry salt. Cook over medium heat for 8 to 10 minutes, stirring frequently, until the tomatoes darken slightly, the mixture becomes thick, and small beads of oil appear around the edges.
Stir in the remaining measured water. Bring the gravy to a gentle simmer, then reduce the heat to medium-low and cook uncovered for 5 minutes. The finished gravy should be thick enough to coat the back of a spoon but still loose enough to surround the eggs.
Step 7: Simmer the eggs and finish the curry
Return the seared eggs to the skillet and turn them gently to coat them in the gravy. Partially cover the skillet and simmer over low heat for 6 minutes, spooning sauce over the eggs halfway through.
Reduce the heat to its lowest setting. Slowly stir in the heavy cream and garam masala. Keep the sauce at a gentle 180°F to 190°F; do not let it boil after adding the cream. Cook for 3 minutes, then remove from the heat and stir in the lime juice. Sprinkle with chopped cilantro and serve two eggs per person with the warm basmati rice.
Pro Tips
- Dry the eggs before searing: Water droplets can make the hot oil sputter, and dry eggs brown more evenly.
- Give the onion enough time: A well-browned onion creates sweetness and depth, preventing the tomato gravy from tasting sharp.
- Cook the tomatoes until glossy: Reducing the tomatoes before adding water concentrates their flavor and gives the gravy a richer texture.
- Add garam masala near the end: Its aromatic spices retain more fragrance when they are not simmered for too long.
- Keep the heat low after adding cream: A hard boil can cause the cream to separate. Room-temperature cream is also less likely to curdle.
Variations
- Dairy-free egg curry: Replace the 1/2 cup heavy cream with 1/2 cup full-fat canned coconut milk. Add it over low heat in the same way.
- Spicier curry: Increase the Kashmiri chili powder to 1 teaspoon, or use 1/2 teaspoon cayenne pepper for a sharper heat.
- Spinach egg curry: Stir 5 ounces roughly chopped baby spinach into the tomato gravy during the final 3 minutes of simmering, then add the cream and garam masala.
Storage & Make-Ahead
Refrigerate the egg curry and rice in separate airtight containers within 2 hours of cooking. Both will keep for up to 4 days. Reheat the curry gently in a covered saucepan over medium-low heat with 1 to 2 tablespoons water until the eggs and sauce reach 165°F. Reheat the rice separately with 1 tablespoon water per serving. The eggs may be hard-boiled up to 2 days in advance and refrigerated in their shells. For longer storage, freeze the tomato-onion gravy before adding the eggs and cream for up to 3 months; thaw overnight, reheat, and finish with freshly cooked eggs, cream, and garam masala. Freezing whole hard-boiled eggs is not recommended because the whites can become rubbery.
Nutrition (per serving)
Calories: 605 kcal | Carbs: 68g | Protein: 20g | Fat: 28g | Saturated Fat: 11g | Fiber: 4g | Sugar: 6g | Sodium: 895mg | Cholesterol: 406mg
