This creamy tomato risotto is deliciously comforting and intensely flavorful! Made with caramelized onions, roasted tomatoes, and a splash of coconut milk, it’s a cozy vegan and gluten-free meal that’s perfect for everything from weeknight dinners to date nights at home.
During the summer months I go a little tomato crazy with my recipes. I can't get enough of fresh summer tomatoes, and LOVE cooking with them. Dishes like my tomato basil pasta, cherry tomato pasta, vegan tomato tart, and one-pot orzo with tomatoes are in heavy rotation in my kitchen. This tomato risotto is another favorite. I love making it with fresh tomatoes during summer, but I also love making it with canned tomatoes during the colder months. It's a delicious, flavor-packed dish that's perfect for any time of year.
Jump to:
The other thing I love about this dish is the flavor combination. The tomatoes and white wine give it a delightful tang, while caramelized onions add both sweet and savory notes, and coconut milk mellows everything out and makes it SO rich and creamy. It's a great dish for everything from wowing dinner guests to cozying up with on a busy weeknight.
Ingredients You'll Need
Below you'll find a list of ingredients in this recipe, with notes and substitutions. Scroll all the way to the bottom of the post to see the full recipe, including the amount of each ingredient.
- Olive oil. You can use another high-heat oil, like vegetable or coconut oil, if you'd like.
- Onions. I used good old yellow onions, because I always have them on hand. You could also use sweet onions like Vidalia or Spanish onions — they're great for caramelizing!
- Sugar. Use organic sugar to keep the recipe vegan (conventional sugar may have been processed using animal products). We're using just a tiny bit of this to help the onions caramelize. Feel free to skip it if you prefer!
- Tomatoes. I used on the vine tomatoes. Roma or plum tomatoes would also work well.
- Garlic.
- Arborio rice. This is a medium grain rice that plumps up and creates a creamy texture when cooked. It's available at most grocery stores.
- White wine. Stick with dry varieties like chardonnay, pinot grigio, and sauvignon blanc. Keep in mind that not all wine is vegan, so check with Barnivore before you buy a bottle.
- Tomato paste.
- Fresh thyme. Dried thyme can be substituted if you'd like. Cut the amount down to one and a half teaspoons.
- Vegetable broth.
- Coconut milk. Use full-fat coconut milk from a can for best results. If you can't have coconut and need an alternative, try a vegan heavy cream substitute — Silk and Califia Farms both make these.
- Salt & pepper.
How It's Made
Below is a detailed photo tutorial on how to make this dish. Scroll all the way down if you'd like to skip right to the recipe!

Steps 1 & 2: Caramelize the onions. Stir thinly sliced onions together with some oil in a large pot. Cook them slowly, stirring occasionally and adding a bit of sugar after 20 minutes. Let them cook until they're super soft and light brown.

Steps 3 & 4: Roast the tomatoes. Cut them in half and rub them lightly with oil. Place them in a pan or skillet and roast them until they're soft and the skins are blistering.
Tip: Short on time? Or short on fresh tomatoes? Swap the homemade roasted tomatoes with one can of diced tomatoes.

Step 5: Prepare the tomatoes. Let them cool a bit, just until they're easy to handle. Peel off the skins (they should come off easily!), then roughly chop them.

Step 6: Sauté the garlic. Once the onions are fully caramelized, push them to the side, turn up the heat a bit, and add minced garlic to the pot. Sauté the garlic briefly.
Make-ahead tip: The roasted tomatoes and caramelized onions can both be prepared in advance. Store each separately in an airtight container in the fridge for up to three days, or in the freezer for up to three months.

Step 7: Toast the rice. Add the rice to the pot. Cook it for a minute or two, while stirring.

Step 8: Add wine. Stir in the wine, and let it simmer while stirring frequently until most of the liquid has dried up.

Step 9: Add tomatoes. Stir in the roasted tomatoes, along with the tomato paste, thyme, and just a half cup of broth. Simmer the mixture while stirring often until the broth you just added dries up.

Step 10: Cook the risotto. Keep adding broth, about a half cup at a time, stirring and waiting for it to reduce before adding more.
Tip: Keep stirring! Risotto isn't the kind of dish you just walk away from. Make sure to stir it frequently in order to get that creamy texture and prevent burning.

Step 11: Add coconut milk. Stir in your coconut milk and cook the risotto a few minutes longer, until it's thick and creamy.

Step 12: Finish the risotto. Take it off of heat and season it with salt and pepper to taste. You can adjust any other seasonings to suit your taste as well!

Step 13: Serve. Your tomato risotto is done! Serve it alone, or with a sprinkle of vegan Parmesan cheese.
Variations
- Add vegetables. I like to add steamed or sautéed veggies when the risotto is just about done — this takes the guess work out of timing things right. Try broccoli, cauliflower, asparagus, or (thawed) frozen peas.
- Extra spicy risotto. Stir in some crushed red pepper flakes or some harissa paste to give your risotto a little kick!
- Sun-dried tomatoes. Stir in some sun-dried tomatoes for some extra sweet and smoky flavor.
- Balsamic drizzle. Top your risotto with a drizzle of balsamic vinegar or a balsamic reduction.
Frequently Asked Questions
Yes, this recipe has no gluten-containing ingredients as written!
Leftover risotto will keep in an airtight container in the fridge for about three days. You can freeze it, but the texture of the rice won't be quite the same.
Carnaroli and Vialone Nano are often used for risottos, but they're more difficult to find than arborio. Other alternatives include sushi rice or brown rice, but the texture of your risotto may be a bit off and you may need to adjust the cook time.
You can, although the wine does add a lot of flavor. If you'd still rather skip it, just substitute an equal amount of vegetable broth.
More Vegan Risotto Recipes
Like this recipe? If so, please stop back and leave me a review and rating below if you try it! Also be sure to follow me on Facebook, Pinterest or Instagram, or subscribe to my newsletter for more recipes like this one!
📖 Recipe
Tomato Risotto with Caramelized Onions
Ingredients
- 4 teaspoons olive oil, divided
- 1 pound yellow onions, thinly sliced
- 1 teaspoon organic granulated sugar
- 2 pounds on the vine tomatoes, halved (Note 1)
- 3 garlic cloves, minced
- 1 ½ cups Arborio rice
- ¾ cup dry white wine
- 2 tablespoons tomato paste
- 2 tablespoons fresh thyme leaves (or 1 ½ teaspoons dried)
- 4 cups vegetable broth, warmed
- ½ cup full-fat coconut milk
- Salt, to taste
- ½ teaspoon black pepper, or to taste
Instructions
- Coat the bottom of a large, heavy bottomed pot with 1 tablespoon of olive oil and place it over medium-low heat. Add the onion and toss it a few times to coat the onions with oil. Cook the onions slowly, stirring occasionally.
- After 20 or 30 minutes of cooking, the onions should begin to soften up and darken (if not, turn up the heat just a smidge). Stir in the sugar at this point. Continue cooking the onions until they're very soft and caramelized, about 30 minutes.
- While the onions caramelize, prepare the tomatoes. Preheat the oven to 400°F. Rub the tomato halves with the remaining 1 teaspoon of olive oil and arrange them in an oven-safe skillet or roasting pan.
- Roast the tomatoes until the skins become wrinkly and blistered, about 25 minutes. Remove the tomatoes from the oven and allow them to cool for a bit.
- When the tomatoes are cool enough to handle, remove the peels, then coarsely chop the tomatoes. Retain any juices that form in the pan while they roast.
- When the onions are caramelized, turn the heat up to medium. Push the onions to the sides of the pot and add the garlic to the space you just created in the middle. Sauté the garlic for about 1 minute, until it becomes very fragrant.
- Stir in the rice. Toast the rice for 1 to 2 minutes, stirring constantly.
- Add the wine, then bring it to a simmer. Let it continue simmering for 2 to 3 minutes, stirring occasionally, until most of the liquid has evaporated or been absorbed by the rice.
- Add the roasted tomatoes, tomato paste, thyme, and about ½ cup of the broth. Cook the mixture while stirring frequently, until most of the liquid has evaporated or been absorbed.
- Continue adding broth in batches, about ½ cup at a time, stirring frequently, and waiting until the amount of liquid has reduced to add more. Do this until you've added 3 to 4 cups total and the rice is creamy and tender. This should take about 20 minutes.
- Stir in the coconut milk and allow the mixture to simmer for 2 or 3 minutes more, until the sauce is thick and creamy.
- Remove the pot from heat and season the risotto with salt and pepper.Â
- Divide onto plates or into bowls and serve.
Notes
- One (14.5 ounce/411 gram) can of diced tomatoes can be used if you can't get good fresh tomatoes or just don't feel like roasting them.









Would it be okay without the coconut milk?
It should be! You can add some extra broth or another type of non-dairy milk if it seems too dry.
I would like to make this for a dinner party. What part of it could be made in advance?
I could prep the tomatoes in advance, but what about caramelizing the onions the day before? I could do that and then re-warm the onions in the pan and pick it up from there but I'm afraid I will lose a lot of flavour from the fond (residue at the bottom of the pan).
What would you suggest I do?
You can definitely caramelize the onions in advance. I actually do this often and sometimes keep a stash of caramelized onions in the freezer! Use a good nonstick surface (I like a well-seasoned cast iron skillet), that way you get everything out when you remove them from the pan. If there's a little bit still in there and you want to get it, you can always deglaze the pan with a little bit of broth, then incorporate that broth into the recipe when you get to step 14. Good luck and I hope you enjoy the dish!
Absolutely amazing risotto! This took quite a while to make so I wouldn't make this on a weekday again but the effort is worthwhile as this tasted amazing! I am not veggie but this is great for those who are or want a meat-free dinner like I did.
is this gluten free?
It is!
My Italian-loving husband loved this dish. Nice change from pasta or pizza to please him! I used canned tomatoes and the full 4 cups of broth and cooked it on low quite a bit longer than called for the get the rice as tender as I wanted. Definitely will make again. Thanks!
This recipe is DIVINE! I have never commented on a blog post before but felt so compelled to share how much I loved this! I enjoyed it with and without the coconut milk. I also didn’t have any white wine so I used rosé and it did not disappoint.
This is so tasty! I'm glad to have found a delicious vegan risotto recipe that doesn't call for vegan cheese. Thanks!
Amazing!!!! Loved this recipe so much!
Can I make this a day ahead and reheat?
Absolutely!
It says to cook the onions for 20-30 minutes, then another 30 minutes. Cooking onions for 1 hour over med-high heat seems absurd. Is this a mistake or is this really how long they are cooked for?
It's actually medium-low. Cooking them on medium high for that long would probably be a bad idea. :) It takes that long for them to caramelize. Since all stoves are different, I do recommend keeping an eye on them and adjusting the temperature as needed, but medium-low should be the right level for most.
just made this for Valentine's day dinner and it was absolutely delicious! doubled the caramelized onions so we could add more to the top and highly recommend it.
I don’t have a dry white wine , could I substitute dry white wine for sherry wine ?
I think a dry sherry would work, but I'd probably reduce the amount by about half.
I don't think that would work. Sherry has a ton of sugar. Substitute more broth for the wine but it will impact the flavour a little.
Can you convert this recipe for the Instant Pot?
I'll add it to my Instant Pot list! :)
I make this risotto at least once a month, and my non-vegan family raves over it! Seriously so good, as always!
Loved this recipe!!! It was time consuming and I was praying it would turn out. And it did! I think it was one of the best things I’ve made. Thanks for sharing it!
Awesome!! I'm glad it was worth the effort and you enjoyed it! Thanks Lexi!
What can I sub for the coconut milk? I am allergic.
You could substitute another variety of unsweetened non-dairy milk. I think cashew would be great in this dish, but almond or soy should work just fine as well!
Very good vegan risotto! thanks
I'm glad you enjoyed it!! Thanks so much!
If you sub the tomatoes for canned, what type should they be...fire roasted? Or plain diced?
Thanks
I used plain, but I bet fire roasted would be delicious as well!
Hi! I was just wondering what a good substitute would be for the thyme? Thank you.
You could substitute all kinds of herbs here - oregano, sage or even some fresh basil would be nice! If you go with basil I'd suggest adding it at the very end. Enjoy!
This recipe was amazing. I am 12 years old and I made it for my family. It definitely took a little while, but it was so rich and creamy! I would highly recommend it with a side of garlic toast!!
Yay!! I'm so happy you and your family enjoyed it! I love to try new recipes and cook for my family when I was 12 too. :) Garlic toast would be awesome with this! Thanks so much Grace!
dying to try this recipe but is there a substitute for the wine? if not, will it be fine if i just leave it out??
You can leave it out, and just use some extra broth if needed. :)
Please, can you think of a substitute for the full fat coconut milk? Cashews? Almond milk? Thank you so much.
Anything unsweetened and unflavored will work - the risotto just might not be quite as rich. I think cashew would be your best bet!
I'm using soy cream instead of the coconut milk (just in the case of this rather Mediterranean style recipe), and it works pretty well.
I think that's a great idea! I have a hard time finding soy cream in my area, so that's why I usually stick with coconut milk. Trader Joe's used to have a soy coffee creamer that worked in recipes like this, but I haven't seen it lately.
Hi . Could you use Barley? I like have diabetes and I am meant to avoid Arbilo ric, because it is high GI. Thanks I liv is he recip you share
I've never made barley risotto, so I'm not sure! Sorry! I'd love to hear how it turns out if you try it.