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

Creamy Sweet Potato Curry

  • Author: Tessa
  • Total Time: 1 hour 20 mins
  • Yield: 8 servings (2 1/2 quarts) 1x


Vegan/gluten free. Thick, creamy coconut curry with simple, easy-to-find ingredients. It’s vegan, make ahead, and freezer friendly: what more could you want in a curry?



Curry sauce base

  • 2 C roughly chopped yellow onion (about 1 1/2 medium onions)
  • 3 large peeled garlic cloves
  • 2 inch long piece of peeled ginger, roughly chopped
  • 3 T coconut oil
  • 1 T garam masala
  • 2 t ground cumin
  • 1 serrano pepper, seeded and roughly chopped
  • 2 T tomato paste
  • 3 C vegetable stock
  • 2 t agave nectar
  • 1 t finely grated lime zest
  • 2 T lime juice (from 1 lime)
  • 2 whole cardamom pods

Curry assembly

  • 2 large sweet potatoes, peeled and cubed 1″
  • 2 large carrots, peeled, halved lengthwise, and sliced 1/2″ thick
  • 1 can (15 oz.) diced tomatoes, with liquid
  • 1 t kosher or sea salt (plus more for final seasoning)
  • Ground black pepper
  • 1 C full fat coconut milk (from a can, or homemade)
  • 4 C packed baby spinach
  • 1/2 lime, juiced
  • Cooked brown rice (optional)
  • Cilantro and scallions, for garnish


  1. In a food processor, puree onion, garlic, ginger, oil, garam masala, cumin, and serrano pepper until a paste forms. Heat a dry, medium Dutch oven (about 4 quarts) over medium heat. Add the onion paste and cook 10 minutes, stirring occasionally, until fragrant and sticking slightly to the pan. Add tomato paste and cook 5 more minutes, stirring frequently, until beginning to darken. Add stock, agave, lime zest and juice, and cardamom. Raise heat to bring to a boil, then reduce heat to simmer for 10 minutes, stirring occasionally.
  2. To the simmering sauce, add sweet potatoes, carrots, tomatoes, a teaspoon of salt, and plenty of black pepper. Bring to a boil, then reduce heat and simmer, covered, about 30 minutes, until potatoes are tender. Add coconut milk and simmer about 5 minutes, uncovered, until slightly thickened. Stir in baby spinach and cook until wilted. Remove from heat and add lime juice, plus salt and pepper to taste. Serve with rice, topped with chopped cilantro and sliced scallions. The curry can also be served without rice as more of a stew, to keep carbs down.


To make most of the curry sauce ahead, finish simmering after adding stock, sugar, lime, and cardamom. Cool and refrigerate. To finish the curry, bring sauce to a simmer and proceed with the recipe (add the potatoes, etc.).

If you don’t want to save the rest of the coconut milk, and you like a creamy, slightly thinner curry, you can just add the whole can. During recipe testing, I like the thickness when I only add a cup of the milk.

Adapted from Bon Appetit, May 2008.

  • Prep Time: 20 mins
  • Cook Time: 1 hour
  • Category: Main Dish
  • Cuisine: Indian