Quick Recipe Version (TL;DR)
Quick Ingredients
- 2 Tbsp neutral oil (avocado, canola, or sunflower)
- 1 large yellow onion, finely diced
- 4 cloves garlic, minced
- 1 Tbsp grated fresh ginger
- 1 medium head cauliflower, cut into small florets (about 6 cups)
- 1 can (14.5 oz / 410 g) diced or crushed tomatoes
- 1 can (13.5 fl oz / 400 ml) full-fat coconut milk
- 1/2 cup (120 g) natural creamy peanut butter
- 1 cup (240 ml) vegetable broth or water
- 1 cup frozen green peas
- 2 tsp ground turmeric
- 2 tsp ground cumin
- 1.5 tsp ground coriander
- 1 tsp garam masala
- 1/2 tsp smoked paprika
- 1/4–1/2 tsp cayenne pepper (to taste)
- 1 Tbsp fresh lime juice
- 1 tsp kosher salt, plus more to taste
- Cooked rice or naan, to serve (optional)
Do This
- 1. Sauté onion in oil over medium heat for 5–7 minutes until soft and golden; add garlic and ginger and cook 1 minute.
- 2. Stir in turmeric, cumin, coriander, garam masala, smoked paprika, cayenne, salt, and pepper; toast 30–60 seconds until fragrant.
- 3. Add tomatoes, coconut milk, peanut butter, and vegetable broth; whisk until the peanut butter dissolves and the sauce is smooth.
- 4. Add cauliflower florets, stir to coat, bring to a gentle simmer, then cover and cook 15–18 minutes, stirring occasionally, until tender.
- 5. Stir in frozen peas and simmer uncovered 3–5 minutes until bright green and heated through; adjust seasoning and lime juice.
- 6. Serve hot over rice or with naan, topped with fresh cilantro and chopped peanuts if desired.
Why You’ll Love This Recipe
- Creamy, rich peanut-tomato-coconut sauce wrapped around tender cauliflower and sweet peas, with just enough gentle heat.
- One-pan, weeknight-friendly curry that feels restaurant-level but uses simple supermarket ingredients.
- Vegan and gluten-free as written, yet hearty enough to satisfy serious comfort-food cravings.
- Great for meal prep: the flavors deepen as it rests, and it reheats beautifully for easy lunches or dinners.
Grocery List
- Produce: 1 large yellow onion, garlic, fresh ginger, 1 medium head cauliflower, fresh lime, fresh cilantro (optional), 1 cup frozen peas
- Dairy: None needed (use full-fat coconut milk from the pantry aisle)
- Pantry: Neutral oil, canned diced or crushed tomatoes, canned full-fat coconut milk, natural creamy peanut butter, vegetable broth or bouillon, ground turmeric, ground cumin, ground coriander, garam masala, smoked paprika, cayenne pepper, kosher salt, black pepper, rice or naan, chopped roasted peanuts (optional)
Full Ingredients
Main Curry
- 2 Tbsp neutral oil (avocado, canola, or sunflower)
- 1 large yellow onion, finely diced (about 1.5 cups)
- 4 cloves garlic, minced
- 1 Tbsp fresh ginger, finely grated
- 1 medium head cauliflower, trimmed and cut into small bite-size florets (about 6 cups / 750 g)
- 1 cup frozen green peas (do not thaw)
- 1 can (14.5 oz / 410 g) diced or crushed tomatoes, with juices
- 1 can (13.5 fl oz / 400 ml) full-fat coconut milk
- 1/2 cup (120 g) natural creamy peanut butter, well stirred
- 1 cup (240 ml) vegetable broth or water
- 2 Tbsp tomato paste (optional, for deeper color and flavor)
- 1 Tbsp fresh lime juice (about 1/2 lime), plus more to taste
- 1 tsp kosher salt, plus more to taste
- 1/4 tsp freshly ground black pepper
Spice Mix
- 2 tsp ground turmeric
- 2 tsp ground cumin
- 1.5 tsp ground coriander
- 1 tsp garam masala
- 1/2 tsp smoked paprika (or sweet paprika)
- 1/4–1/2 tsp cayenne pepper, to taste
To Serve (Optional but Recommended)
- Cooked basmati or jasmine rice, quinoa, or warm naan
- Fresh cilantro leaves, roughly chopped
- Extra lime wedges
- Chopped roasted peanuts, for garnish and crunch

Step-by-Step Instructions
Step 1: Prep your vegetables and spices
Start by getting all your ingredients ready; this makes the cooking process smooth and relaxed. Finely dice the onion, mince the garlic, and grate the ginger. Trim the cauliflower, removing leaves and tough stem, then cut into small, bite-size florets so they cook evenly and become tender in the sauce.
In a small bowl, combine the ground turmeric, cumin, coriander, garam masala, smoked paprika, and cayenne pepper. Stir them together so they are ready to sprinkle in one go. Open the cans of tomatoes and coconut milk, stir the peanut butter if separated, and measure out the vegetable broth. Having everything prepped will keep you from rushing once the pan is hot.
Step 2: Build a flavorful aromatic base
Place a large, heavy skillet, sauté pan, or shallow Dutch oven over medium heat. Add the neutral oil and let it warm for about 30 seconds. Add the diced onion and a pinch of salt. Cook, stirring occasionally, for 5–7 minutes, until the onion is soft, translucent, and just starting to turn golden around the edges.
Add the minced garlic and grated ginger. Cook for 1 minute more, stirring constantly, until very fragrant. Keep the heat at medium and avoid browning the garlic; you want a gentle sizzle, not aggressive frying. This aromatic base is what gives the curry its deep, rounded flavor.
Step 3: Toast the spices
Sprinkle the prepared spice mix (turmeric, cumin, coriander, garam masala, smoked paprika, and cayenne) over the onion mixture. Add the black pepper and 1 teaspoon kosher salt. Stir well to coat the onions in the spices.
Let the spices toast in the pan for 30–60 seconds, stirring constantly, until they smell nutty and fragrant and the onions are a deep golden hue. If the pan looks dry or the spices start to stick, splash in 1–2 tablespoons of water and keep stirring. Lightly toasting the spices brings out their oils and boosts their flavor in the finished curry.
Step 4: Make the creamy peanut-tomato sauce
Pour in the canned tomatoes (with their juices) and tomato paste, if using. Stir to dissolve any browned bits from the bottom of the pan. Let the tomatoes simmer for 2–3 minutes to slightly thicken and sweeten.
Add the coconut milk, peanut butter, and vegetable broth. Whisk or stir thoroughly until the peanut butter is completely dissolved and the sauce looks smooth and velvety, with no streaks. The sauce will be fairly loose at this stage, which is perfect; it will thicken as the cauliflower cooks and the peanut butter and coconut milk reduce slightly.
Step 5: Simmer the cauliflower until tender
Stir the cauliflower florets into the pan, making sure every piece is coated in the sauce. Increase the heat to medium-high just until the curry comes to a gentle simmer with small bubbles breaking around the edges, then reduce the heat to medium-low.
Cover the pan with a lid and simmer for 15–18 minutes, stirring every 5 minutes or so to prevent sticking. The sauce should be gently bubbling, not boiling hard. If it seems too thick or begins to catch on the bottom, add a splash of water or broth and reduce the heat slightly. The curry is ready for the next step when the cauliflower is tender all the way through when pierced with a fork, but not falling apart.
Step 6: Add peas and brighten the flavors
Stir in the frozen peas, breaking up any large clumps with a spoon. Simmer the curry uncovered for 3–5 minutes, just until the peas are bright green and heated through. This short cook time keeps them sweet and slightly firm instead of mushy.
Turn off the heat and stir in 1 tablespoon of fresh lime juice. Taste the curry and adjust: add more salt if the flavors taste flat, more lime juice for brightness, or an extra pinch of cayenne if you want more heat. The sauce should be creamy, rich, and gently tangy, with a hint of sweetness from the tomatoes and peas.
Step 7: Serve and garnish
Spoon the hot curry over bowls of fluffy rice or serve alongside warm naan or flatbread. For a finishing touch, sprinkle with chopped fresh cilantro and a handful of chopped roasted peanuts for extra crunch and nutty flavor. Serve immediately with lime wedges on the side for anyone who likes an extra squeeze of acidity.
This curry thickens slightly as it sits, which makes it especially good for scooping with bread or piling over grains. It is even more flavorful the next day, so do not hesitate to make it ahead or double the batch.
Pro Tips
- Cut the cauliflower small. Smaller florets (about 1–1.5 inches) cook more evenly and soak up more of the creamy peanut sauce.
- Use natural peanut butter. Look for peanut butter made only from peanuts (and maybe salt). Sweetened or stabilized spreads can make the sauce too sweet or greasy.
- Adjust thickness to your liking. If the curry is too thick at the end, stir in 2–4 tablespoons of hot water or broth. If it is too thin, simmer uncovered for a few extra minutes to reduce.
- Control the heat level. Start with 1/4 teaspoon cayenne for mild heat. Taste at the end and add a pinch more if you like it spicier.
- Let it rest before serving. If you have time, turn off the heat and let the curry sit for 5–10 minutes. The flavors meld and the sauce thickens slightly for an even silkier texture.
Variations
- Extra-veg version: Add 1 diced red bell pepper with the onions, or stir in a big handful of baby spinach or kale with the peas and cook just until wilted.
- Crunchy peanut topping: Toss 1/4 cup chopped roasted peanuts with a pinch of salt, cayenne, and lime zest, then sprinkle over each bowl for added texture and flavor.
- Protein boost: Stir in 1 can (15 oz / 425 g) drained chickpeas or 1.5 cups cooked lentils with the cauliflower for a heartier, higher-protein meal.
Storage & Make-Ahead
Let the curry cool to room temperature before storing. Transfer to an airtight container and refrigerate for up to 4 days. The sauce will thicken in the fridge; when reheating on the stovetop over low to medium heat, stir in a splash of water or broth to loosen it to your preferred consistency. You can also reheat individual portions gently in the microwave, stirring halfway through.
For longer storage, this curry freezes well. Spoon into freezer-safe containers, leaving a little room at the top, and freeze for up to 2 months. Thaw overnight in the refrigerator, then reheat gently on the stovetop, adding extra liquid as needed. Cook rice or warm bread fresh when you are ready to serve for the best texture.
Nutrition (per serving)
Approximate values for 1 of 4 servings (curry only, without rice or bread): about 520 calories; 14 g protein; 26 g carbohydrates; 38 g fat; 9 g saturated fat; 9 g fiber; 720 mg sodium. Actual values will vary based on specific brands, coconut milk richness, and any added garnishes or sides.

Leave a Reply