clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon
Vegan potato curry in a bowl with cilantro and white rice.

Creamy Potato Curry with Coconut Milk

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

4.5 from 2 reviews

  • Author: Allie
  • Total Time: 50 minutes
  • Yield: 5 servings 1x
  • Diet: Vegan


This creamy potato curry with coconut milk is filled with potatoes, peas, greens, and a combination of delightful spices.  It’s oil-free, vegan, and naturally gluten-free.


  • 1 onion, diced
  • 3 garlic cloves, minced or crushed
  • 1 tablespoon curry powder
  • 2 teaspoons garam masala
  • 3/4 teaspoon salt
  • 1/2 teaspoon ground ginger
  • 1/8 teaspoon ground red pepper
  • 1 can (14 ounces) full fat coconut milk
  • 1 can (14 ounces) crushed tomatoes
  • 1.7 pounds (770 g) potatoes, 3/4 inch diced
  • 2 cups frozen peas
  • 2 cups fresh spinach
  • For serving: cooked rice, fresh cilantro, and/or sriracha


  1. Measure out the curry powder, salt, garam masala, ground ginger, and ground red pepper into a small bowl.
  2. Sauté the onions with a pinch of salt in a large pot until they are translucent and starting to brown. For oil-free cooking, add a few tablespoons of water or vegetable broth as needed so the onions don't stick to the bottom of the pot.  Otherwise use a neutral-tasting oil.
  3. Then add the crushed garlic to the onions and sauté for a minute.
  4. Next, add all of the seasonings (curry powder, garam masala, salt, ground ginger, red pepper) and cook until aromatic, which may take about 30 seconds to a minute.  Turn down the heat if needed so the seasonings don't burn.
  5. Add the coconut milk and deglaze the pan, scraping off any brown bits from the bottom of the pot with a wooden spoon.
  6. Then add the crushed tomatoes and potatoes to the pot. Turn up the heat until your mixture is bubbling and then lower the heat to a simmer.
  7. Occasionally stir the potatoes so they don't stick to the bottom of the pot.
  8. Cook covered at a simmer for about 15-30 minutes or until fork-tender.  Make sure it's a simmer during the entire cooking process.  The potatoes may take longer to cook in this thick tomato-based curry versus a thinner soup.  Start checking for doneness at the 15-minute mark.  Insert a fork into a potato and it should have little resistance.
  9. When the potatoes are done add the peas and spinach. Cook until the spinach is wilted and the peas are warmed through.


No need to get a rapid boil, the tomato mixture will be thick.  It does need to stay at a gentle simmer on low to low medium heat.

The size of the potatoes once diced will change the cooking time if they are too large.  

Make sure the curry is at a simmer during the entire cooking process and keep it covered to ensure the potatoes can cook in the thick curry.

The recipe works out fine for my testers and some readers, but the potatoes stay firm for other readers.  If this is the case for you, you can try parboiling the potatoes first then finish them in the curry.

  • Prep Time: 15 minutes
  • Cook Time: 40 minutes
  • Category: main course
  • Method: stovetop
  • Cuisine: Indian inspired