Rich and flavorful Spanish rice and beans, the perfect weeknight dinner for vegetarians & vegans alike. Also, a tasty side dish for meat-eaters or pescetarians! Easy to make in one pot, with all the aspects of a supreme comfort food. This recipe is naturally gluten-free, dairy-free, and a great source of complete proteins.

Vegan Spanish rice is super easy to whip up in about 30 minutes. It’s a meal I eat about three times a week, sometimes even more often. This dish is a staple food in Central America (Mexican rice and beans), many Latin American & South American countries, and also in the Caribbean, where I currently live. Dominican rice and beans are quite popular, well seasoned, and tasty!
Why are rice and beans so popular in so many countries? Because the dish is cheap, easy to cook, delicious, healthy (rich in fiber), and furthermore it contains all essential amino acids. So if you are a vegan and get asked “but where do you get your protein from?!”, simply reply “from rice and beans (and other plants)”. 😀

Simple Ingredients
Below are the main ingredients and their substitutes. All ingredients, measurements, and also the calories in Spanish rice are listed in the printable recipe card below.
- Beans – I prefer using red beans (e.g. kidney beans), however, you can also use pinto beans or black beans. Either cook the beans from dry (for example in a pressure cooker/Instant Pot) or use canned beans. Cooking the beans from dry takes much longer, of course.
- Rice – My favorite rice is Basmati rice or Jasmine rice, even though it’s not typical for Spanish rice but I love that it cooks so fast. Sometimes I use brown rice, because it’s healthier, containing more vitamins and minerals.
- Bell pepper – I prefer red or orange peppers, but feel free to use yellow or green ones.
- Salsa – Use your favorite salsa or tomato sauce from a jar! My favorite brand contains basil, oregano, garlic, and onion (so yummy!)
- Fresh onion and garlic – Do not skip! Fresh onion and garlic add so much flavor to the Spanish rice and beans. Furthermore, the health benefits are unbeatable!
- Vegetable broth – I recommend using a store-bought veggie broth or stock to save time. Or simply dissolve a veggie bouillon cube in water.
- Spices – Paprika, smoked paprika, cumin, salt, and black pepper are a must. You can also add veggie sazon seasoning, red pepper flakes (cayenne pepper), hot sauce, and dried oregano.
- Olives – I also love adding green olives but you can leave them out if you don’t like olives.

How To Make Spanish Rice And Beans?
STEP 1: Start by adding the uncooked rice to a bowl with water and let it soak for about 10 minutes, then discard the water. Meanwhile, chop the onion, garlic, bell pepper, and prep the other ingredients.
STEP 2: Heat oil in a large skillet or pot (use veggie broth if avoiding oil), add onion and bell pepper. Sauté for about 3 minutes. Stir in garlic, and all spices and sauté for a further one minute.

STEP 3: Next, add the rice, salsa & veggie broth and bring the mixture to a boil.

STEP 4: Cover the skillet or pot and let simmer on the lowest heat setting for about 15-20 minutes or until the rice is cooked. Do not uncover the lid, and do not stir while cooking! The cooking time depends on the rice variety (check the package instructions of your rice brand). Jasmine rice or Basmati rice cook much faster than e.g. brown rice.

STEP 5: Turn off the heat, remove the lid and taste the rice. Adjust seasonings if needed, adding more salt, black pepper, cumin, red pepper flakes, etc. to taste. Stir in beans & olives (optional) and garnish with fresh herbs (cilantro or parsley) to taste. Store leftovers covered in the refrigerator for up to 3 days.

Helpful Tips And Variations
- Coconut rice and beans: Coconut is very often used in Dominican cooking (also in many other Caribbean countries). I love adding a splash of canned coconut milk to enhance the flavors!
- Rice and bean casserole: Interested in a variation? Check my Rice And Bean Casserole recipe for inspiration.
- Spanish rice stuffed peppers: I love making vegan stuffed peppers and this rice and beans recipe makes a great filling for bell peppers. Check out my Vegan Stuffed Bell Peppers recipe for the instructions.
- Instant Pot method: Press the sauté function of your Instant Pot, add oil, onion, garlic, bell pepper, and all spices. Sauté for about 2-3 minutes, stirring frequently. Then add rice, salsa, vegetable broth and seal the IP. Set to high pressure for 8 minutes. Quick release, open the Instant Pot, stir in beans & olives (optional) and fresh herbs.

Perfect For Meal Prep
This red beans and rice recipe is perfect for meal prep. Store in individual lunch boxes in the refrigerator for up to 3 days. Add in other ingredients of choice, for example, cherry tomatoes, avocado or corn for a variation.

This Recipe Is:
- Vegan (dairy-free)
- Gluten-free
- Low-fat
- Protein-rich
- Easy to make
- A great weeknight dinner or side dish
- Also, great for kids
- A healthy 1-Pot recipe
- Perfect for meal prep
- Read in about 30 minutes
- Flavorful
- Comforting

Should you give this healthy Spanish rice and beans recipe a try, please leave a comment and rating below and tag me in your Instagram or Facebook post with #elavegan and use @elavegan.
If you love easy rice recipes, make sure to check out my other vegan recipes, that also happen to be gluten-free:
- Vegan Mushroom Risotto
- Creamy Vegan Risotto with Broccoli
- Turmeric Rice
- Vegan Chickpea Curry with Rice
- Sweet Potato Curry With Rice
- Rice And Bean Casserole

Spanish Rice And Beans
Video
Ingredients
- 1 tbsp oil use veggie broth if you avoid oil
- 1 medium onion diced
- 1 medium red bell pepper chopped
- 3-4 garlic cloves minced
- 1 tsp ground cumin
- 1 tsp sweet paprika
- 1 tsp dried oregano
- ½ tsp smoked paprika
- Pinch of red pepper flakes
- Salt & black pepper to taste
- 1 ½ cups (300 g) white rice uncooked (*see notes)
- 1 ¼ cups (300 ml) vegetable broth or more, depending on rice variety
- 1 ¼ cups (300 g) salsa
- 1 (15 oz) can (270 g) kidney beans drained and rinsed (*see notes)
- ½ cup (65 g) green olives halved (optional)
- Fresh herbs to garnish, e.g. cilantro or parsley
Instructions
- Check the video in the blog post for visual instructions.Add the rice to a bowl with cold or lukewarm water and let it soak for at least 10 minutes (I recommend 30 minutes if you have the time), then discard the water. Meanwhile, chop the onion, garlic, bell pepper, and prep the other ingredients.
- Heat the oil in a large skillet or pot, add onion and the bell pepper. Sauté for about 3 minutes. Stir in the garlic, and all spices and sauté for a further one minute.
- Add the rice, salsa & veggie broth and bring the mixture to a boil. Please note that you'll need more vegetable broth and salsa if using rice that requires a longer cooking time.
- Cover the skillet or pot and let simmer on the lowest heat setting for about 15-20 minutes. Do not uncover the lid, and do not stir while cooking! The cooking time depends on the rice variety (check the package instructions). Jasmine rice or Basmati rice cook much faster than e.g. brown rice.
- Turn off the heat, remove the lid and taste it. Adjust seasonings if needed, adding more salt, black pepper, cumin, red pepper flakes, etc. to taste. Stir in beans & olives (optional) and garnish with fresh herbs (cilantro or parsley) to taste. Store leftovers covered in the refrigerator for up to 3 days.
Notes
- Rice: My favorite rice is Basmati rice or Jasmine rice, even though it's not typical for Spanish rice but I love that it cooks so fast. You can use any other white rice or brown rice, simply adjust the cooking time and add more vegetable broth and salsa.
- Beans: You can also use cooked pinto beans or black beans.
- Tips: Read the blog post for more helpful tips and variations and for instructions on how to make the recipe in an Instant Pot.
- Recipe serves 4. Nutrition facts are for one serving.
Nutrition information is an estimate and has been calculated automatically
IF YOU ARE USING PINTEREST, FEEL FREE TO PIN THE FOLLOWING PHOTO:




Made this recipe as is and the basmati rice was very undercooked. Had to add another cup of stock, cooked another 10 minutes, then left the lid on for 15 resting.
Hi Candice, did you soak the rice in water before cooking it? It does make a huge difference.
I absolutely LOVE this recipe! It’s seriously tasty. Thank you SO much for sharing.
I’m curious, though….Would this be suitable to cook in a slow cooker? I’m very much a dump and run cook.
So happy you love the recipe, that makes my day! 😊 Yes, you can make this in a slow cooker, it works well as a dump-and-go meal. Just add everything to the slow cooker (no need to sauté first, unless you want extra flavor), and cook on HIGH for 1.5-2.5 hours, depending on the type of rice you use. If it looks a little dry, just stir in a splash more broth at the end. Enjoy!
Love, love, love this! Not changing a thing. ☺️ Used parboiled rice as it’s my favourite. But I shouldn’t sat the olives are optional – made all the difference.
r
Yay, I’m so happy you loved it just the way it is! Great idea with parboiled rice, and I agree – the olives really do make a big difference. 💛
So easy and very simple to prepare.I used Brown rice and doubled stock in,skip red pepper and add habanero red pepper.Perfect seasoning and my family enjoy this meal .Next time I will add chorizo or ground beef .Thanks for sharing ,only I miss show my picture of your recipe maybe U add this options this always help for more people can made this.
Delicious and just spicy enough! Some of the rice stuck to the bottom of the pot, but I added more vegetable broth to the mixture to mix it together.. Will definitely make this again. Thank you for this quick and easy recipe.
So glad you enjoyed it—and great call adding more vegetable broth to loosen it up! 🙌 A little rice sticking happens sometimes, but it sounds like you handled it perfectly. Thanks for the kind words, and happy to hear it’s a repeat recipe for you! 😊
The flavours were great but the rice burned on the bottom, I think I will try stirring it next time.
Actually, it’s best not to stir the rice while it’s cooking — that’s often what causes it to burn or get mushy. Instead, try using a bit more liquid next time, and keep the lid on the whole time while it simmers. The type of rice can make a difference too, so definitely check the notes in the blog post for tips on timing and liquid amounts. Hope it turns out perfectly next time! 😊
We loved it. Easy enough and versatile enough to serve with our grilled andouille and shrimp. I did omit the red pepper flakes because of andouille. But this is a keeper
I made this the other day and my super fussy daughter loved it so much. Thank you for sharing.
That’s wonderful to hear – I’m so glad she liked it! 😊 Thanks for trying it out and sharing your lovely feedback, Sammi!
This recipe was so easy and my 7 year old loved it so much she asked if I could make it next week again.
So great to hear! I’m thrilled your 7-year-old loved it so much. 😊
This is yummy. Making something for the 1st time always teaches you things. For me, next time I will add more broth and turn down the heat a little more. That being said, at the bottom of the skillet I had yummy crust where the rice burned just a tiny bit. This will be a keeper and I hope to make it very often. Thank you!!!
Hi Susan, I am so glad you liked the recipe! Thanks for your feedback. 🙂
I don’t see where it says to add in the beans
Hi, you’ll add the beans in step 5.
“Store leftovers covered in the refrigerator for up to 3 days.”
Can the leftovers be in the fridge for longer than 3 days like 5 days at most?
I wanted to use this recipe to make 5 lunch meals for the weekdays.
Absolutely, that should be totally fine.
A perfect recipe! Thank you!
I soaked BROWN Jasmine Rice for 30 minutes and cooked for 45. I used Roma tomatoes and pinto beans and added 1 tsp of chili power.. I topped with lime juice and cilantro.
The preparation was easy and oohhhhh so delicious.
Wonderful! I am so glad it was a hit. Thanks for your great feedback. 🙂
My two year old son and I absolutely love this recipe, one of our absolute favourites! I love that it’s a simple enough recipe that he can really get involved with helping to cook it. We use basmati rice, slightly more stock and cook for 17 minutes and it’s perfect. We are definitely big eaters though because it does the two of us for dinner and then the leftovers do me for work the next day, so it serves 2 adults and 1 toddler 😂
Aww, so happy you all like it. 🙂
I guess soaking the rice is a must for the cook time. I didn’t soak it and my rice was still quite crunchy after 40 minutes of cook time. The flavor was tasty. I used some jar roasted red peppers in place of fresh red pepper. I will knock back on the amount of olives, but it added good flavor to the rice altogether.
Looks good, but doesn’t actually seem Spanish. Is it actually more South or Central American?
That’s just the common name for this type of dish in many English-speaking countries. It’s not actually from Spain, but rather inspired by Mexican or Latin American cuisine. The term Spanish rice is widely used, even if it doesn’t reflect the actual origin.
Amazing!! I used a whole can of fire roasted tomatoes instead of the salsa, and brown rice. I cooked it for 45 minutes with some extra broth, and it was soooo delicious!! Thank you for a great recipe! I will be making it again for sure!
Sounds amazing, Deanna. 🙂
Is it possible to used cooked rice by altering this in any way. I have rice and red beans already cooked.
Sure, just leave out the veggie broth and maybe use a little less salsa.
This was such a good recipe. Followed the suggestion for coconut milk and added a whole can and used veggie broth for the rest of the liquid. Made a double recipe and it was gone in less than 2 days. Love all your recipes. This one will be in the regular rotation!! So good with cilantro on top too!
That’s so good to hear, Christina! Thanks for your amazing feedback. 🙂
Followed instructions to the letter. I used jasmine rice. Cooked for 15 minutes. Perfect!!!
Thanks so much for your great feedback! 🙂
I used jasmine rice and all specified quantities and the rice was very hard, I had to add a lot more of the liquids. I believe it would be better to add the broth first in more quantity and then add the salsa/tomatoes later as the rice would cook better.
Thanks for your feedback! 🙂
Very tasty but my rice was still a little “al dente” after 20 minutes and I soaked the basmati rice for 30 minutes. I’ll try again!
Thanks for your feedback, Maureen. 🙂
Super easy and delicious recepe! But why store uncovered?
That should say “covered”. Fixed it, thanks for noticing! 🙂