Here is my favorite vegetarian Thai green curry recipe, with a creamy coconut milk base, fresh vegetables, tofu, and a homemade green curry paste that’s surprisingly easy to make.
This Thai green curry has become our go-to weeknight dinner when we want something flavorful but don’t have a ton of time. I love that I can throw in whatever vegetables I have in the fridge, and it always turns out delicious. Plus, the leftovers taste even better the next day!
Why You’ll Love This Thai Green Curry
- Ready in under an hour – This curry comes together in just 40-55 minutes, making it perfect for busy weeknights when you want something flavorful without spending hours in the kitchen.
- Vegetarian and protein-packed – The firm tofu provides plenty of protein while keeping this dish completely meat-free, so it works great for vegetarians or anyone looking to eat less meat.
- Restaurant-quality flavor at home – The creamy coconut milk and green curry paste create that authentic Thai taste you’d pay extra for at a restaurant, but you can make it yourself with ingredients from your regular grocery store.
- Colorful and nutritious – With bell peppers, carrots, and Thai basil, you’re getting a good mix of vegetables in every bite, making this as healthy as it is delicious.
- Customizable spice level – You control how spicy it gets by adjusting the amount of curry paste, so you can make it mild for the whole family or turn up the heat if you like it spicy.
What Kind of Tofu Should I Use?
For this Thai green curry, you’ll definitely want to stick with firm or extra-firm tofu rather than soft or silken varieties. The firmer textures hold their shape much better when you’re cooking them in the curry sauce, so you’ll end up with nice cubes instead of a crumbly mess. Make sure to press your tofu before cubing it – this removes excess water and helps it absorb all those delicious curry flavors. You can use a tofu press if you have one, or just wrap the block in a clean kitchen towel and set something heavy on top for about 15-20 minutes.
Options for Substitutions
This curry is really forgiving when it comes to swapping ingredients around:
- Firm tofu: If you’re not a tofu fan, try chickpeas, tempeh, or even cubed eggplant instead. For tempeh, steam it for 10 minutes first to remove any bitterness. If using chickpeas, just drain and rinse them from the can.
- Green curry paste: This is the heart of the dish, so I wouldn’t substitute it. However, you can adjust the amount based on your heat preference – start with 2 tablespoons if you’re sensitive to spice.
- Coconut milk: Full-fat coconut milk gives the best creamy texture, but light coconut milk works if you want to cut calories. Just know the curry will be a bit thinner.
- Bell peppers and vegetables: Mix and match whatever vegetables you have on hand – zucchini, snap peas, broccoli, or mushrooms all work great. Just add harder vegetables like carrots earlier and softer ones like zucchini toward the end.
- Thai basil: Regular basil or cilantro can step in if you can’t find Thai basil. The flavor will be slightly different but still tasty.
- Brown sugar: White sugar, coconut sugar, or even a bit of maple syrup will work to balance out the spice and saltiness.
Watch Out for These Mistakes While Cooking
The biggest mistake when making Thai green curry is adding the coconut milk all at once, which can result in a watery, bland sauce – instead, add the curry paste to just a few tablespoons of the thick coconut cream from the top of the can and fry it for a minute or two until fragrant before adding the rest of the liquid.
Another common error is overcooking your tofu, so make sure to press it well and pan-fry it separately until golden before adding it to the curry, which keeps it crispy on the outside rather than mushy.
Don’t toss all your vegetables in at the same time either, since carrots take longer to cook than bell peppers – add the carrots first and give them a few minutes head start so everything finishes at the same time.
Finally, wait until the very end to stir in your Thai basil and lime juice, as cooking them too long will kill their fresh, bright flavors that really make this dish shine.
What to Serve With Thai Green Curry?
The most traditional way to enjoy Thai green curry is over a big bowl of steamed jasmine rice, which soaks up all that creamy coconut sauce perfectly. If you want to mix things up, try serving it with rice noodles or even cauliflower rice for a lighter option. A side of spring rolls or vegetable dumplings makes a great starter, and you can add some extra crunch by serving cucumber slices or a quick Thai-style cabbage slaw on the side. Don’t forget to have some extra lime wedges and fresh Thai basil at the table so everyone can adjust the flavors to their liking.
Storage Instructions
Store: This curry actually tastes even better the next day once all the flavors have had time to mingle! Keep it in an airtight container in the fridge for up to 4 days. I like to store the rice separately so it doesn’t get too mushy.
Freeze: You can freeze this curry for up to 3 months in a freezer-safe container. Just know that the tofu texture might change a bit and become slightly spongier, but the flavor will still be great. Again, I’d recommend freezing it without the rice and making that fresh when you’re ready to eat.
Reheat: Warm it up gently on the stovetop over medium-low heat, stirring occasionally until heated through. You can also microwave it, but I find the stovetop works better for keeping the coconut milk from separating. Add a splash of coconut milk or broth if it seems too thick after storing.
| Preparation Time | 10-15 minutes |
| Cooking Time | 30-40 minutes |
| Total Time | 40-55 minutes |
| Level of Difficulty | Medium |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 1050-1200
- Protein: 35-45 g
- Fat: 70-80 g
- Carbohydrates: 70-90 g
Ingredients
For the curry:
- 1 red bell pepper
- 1/2 cup bamboo shoots
- 1/4 cup Thai basil leaves (or regular basil if unavailable)
- 3 tbsp green curry paste (I use Thai Kitchen)
- 14 oz firm tofu (pressed)
- 2 tbsp vegetable oil
- 1 tbsp brown sugar
- 1 tbsp lime juice (freshly squeezed preferred)
- 1 cup vegetable broth
- 1 can (13.5 oz) coconut milk (full-fat)
- 2 tbsp soy sauce or tamari
- 1 green bell pepper (sliced)
- 1 medium carrot
For serving:
- Steamed jasmine rice
Step 1: Prepare and Fry the Tofu
- 14 oz firm tofu (pressed)
- 1 tablespoon vegetable oil
Cut the pressed tofu into cubes.
Heat 1 tablespoon of vegetable oil in a large skillet over medium heat.
Add the cubed tofu and fry until all sides are golden brown, about 5-7 minutes.
Once done, remove the tofu from the skillet and set aside.
Step 2: Cook the Curry Paste and Liquids
- 1 tablespoon vegetable oil
- 3 tbsp green curry paste
- 1 can (13.5 oz) coconut milk (full-fat)
- 1 cup vegetable broth
In the same skillet, add the remaining 1 tablespoon of vegetable oil and green curry paste.
Fry the curry paste for 1-2 minutes until fragrant.
Slowly pour in the coconut milk and vegetable broth, stirring to fully combine with the paste.
Step 3: Simmer the Vegetables
- 1 red bell pepper (sliced)
- 1 green bell pepper (sliced)
- 1 medium carrot (sliced)
Add the sliced red and green bell peppers and the peeled, sliced carrot to the skillet.
Bring the mixture to a simmer and cook for about 10 minutes, or until the vegetables are just tender.
I like to keep the vegetables slightly crisp for extra texture.
Step 4: Combine Tofu, Bamboo Shoots, and Seasonings
- fried tofu (from Step 1)
- 1/2 cup bamboo shoots
- 2 tbsp soy sauce or tamari
- 1 tbsp brown sugar
Return the fried tofu (from Step 1) to the skillet along with bamboo shoots, soy sauce or tamari, and brown sugar.
Stir well to incorporate all the ingredients, then let the curry cook for another 5 minutes so the flavors can meld together.
Step 5: Finish with Lime Juice and Basil
- 1 tbsp lime juice (freshly squeezed preferred)
- 1/4 cup Thai basil leaves (or regular basil if unavailable)
Remove the skillet from the heat and stir in the freshly squeezed lime juice and Thai basil leaves.
Taste and adjust the seasoning by adding more soy sauce or lime juice if needed.
For a more authentic flavor, I like to use fresh Thai basil whenever possible.
Step 6: Serve the Curry with Jasmine Rice
- Steamed jasmine rice
Spoon the finished green curry over steamed jasmine rice and enjoy immediately while hot.

Homemade Vegetarian Thai Green Curry
Ingredients
For the curry:
- 1 red bell pepper
- 1/2 cup bamboo shoots
- 1/4 cup Thai basil leaves (or regular basil if unavailable)
- 3 tbsp green curry paste (I use Thai Kitchen)
- 14 oz firm tofu (pressed)
- 2 tbsp vegetable oil
- 1 tbsp brown sugar
- 1 tbsp lime juice (freshly squeezed preferred)
- 1 cup vegetable broth
- 1 can (13.5 oz) coconut milk (full-fat)
- 2 tbsp soy sauce or tamari
- 1 green bell pepper (sliced)
- 1 medium carrot
For serving:
- Steamed jasmine rice
Instructions
- Cut the pressed tofu into cubes. Heat 1 tablespoon of vegetable oil in a large skillet over medium heat. Add the cubed tofu and fry until all sides are golden brown, about 5-7 minutes. Once done, remove the tofu from the skillet and set aside.
- In the same skillet, add the remaining 1 tablespoon of vegetable oil and green curry paste. Fry the curry paste for 1-2 minutes until fragrant. Slowly pour in the coconut milk and vegetable broth, stirring to fully combine with the paste.
- Add the sliced red and green bell peppers and the peeled, sliced carrot to the skillet. Bring the mixture to a simmer and cook for about 10 minutes, or until the vegetables are just tender. I like to keep the vegetables slightly crisp for extra texture.
- Return the fried tofu (from Step 1) to the skillet along with bamboo shoots, soy sauce or tamari, and brown sugar. Stir well to incorporate all the ingredients, then let the curry cook for another 5 minutes so the flavors can meld together.
- Remove the skillet from the heat and stir in the freshly squeezed lime juice and Thai basil leaves. Taste and adjust the seasoning by adding more soy sauce or lime juice if needed. For a more authentic flavor, I like to use fresh Thai basil whenever possible.
- Spoon the finished green curry over steamed jasmine rice and enjoy immediately while hot.


