Snacks & Sides

Mexican Red Rice

A blue human icon signifying servings.
servings
4–6
A blue hand icon signifying prep time.
Prep
15
A blue clock icon signifying cook time.
cook
45
Last updated on
February 26, 2026

Mexican rice is always a crowd favorite. The ingredients are familiar and inexpensive, which is part of why this rice is such a staple. Paired with some beans, you have a complete protein that is cheap and plant-based. What makes this recipe special is the attention to small details that build layers of flavor. The infused oil gives the rice a savory base, the blistered chile adds a smoky aroma without making the dish spicy, and cooking the tomato mixture until it darkens slightly brings out a richer color and flavor. The veggies add sweetness and texture.

Notes & Tips
  • Heating the broth:  Warm broth keeps the pot at a steady temperature. If you add cold liquid, the rice can seize and cook unevenly. Hot broth helps the grains absorb liquid smoothly and cook more consistently.
  • Epazote (optional):  A small sprig of epazote adds a subtle herbal note that is very common in central Mexican cooking. It is not essential, but it adds extra oomph if you can find it.
  • Resting the rice:  Letting the rice sit covered after cooking allows the steam to finish the job. This is what makes the grains fluffy and separate instead of wet or clumpy. It is one of the most important steps.
Snacks & Sides
Mexican Red Rice
A black human icon signifying servings.
serves
4–6
A black hand icon signifying prep time.
prep in
15
minutes
A black clock icon signifying cook time.
cook for
45
minutes
Ingredients
For the Rice
  • 1 cup long grain rice
  • 2 cups chicken broth
  • 2 Roma tomatoes
  • ½ white onion
  • 3 garlic cloves, peeled
  • 2 heads garlic, peeled
  • 1 bay leaf
  • About 1 tsp salt
  • 2 tablespoons avocado oil (or another oil with a high smoke point)
  • 1 whole garlic clove, peeled and lightly smashed
  • 1 jalapeño or serrano chile
Veggie Ad-ins
  • 2 tablespoons minced white onion
  • ¼ cup diced carrot
  • ¼ cup peas
  • 1 small sprig fresh epazote (optional)

Directions
  1. Rinse the rice under cold water until the water runs clear and set it aside.
  2. Blend the tomatoes, ½ onion, and 3 garlic cloves until smooth and keep the mixture nearby.
  3. Heat a small splash of oil in your pan over medium heat. Add the whole chile and let it blister on all sides until lightly charred. Remove and set aside. If you are short on time, you can skip this step and use a raw chile later.
  4. Add 2 TBSP of oil to your pan. Add the smashed garlic clove to the pot and let it sizzle gently until it turns a light golden color. Lower the heat slightly and add the minced onion. Cook until softened and fragrant.
  5. Add the rinsed rice to the pot and stir until every grain is coated in the oil. Toast the rice until it begins to take on a faint golden color.
  6. Warm the chicken broth in a small pot or in the microwave. Add your salt.
  7. Pour in the blended tomato mixture and keep the heat at medium-low. Cook until the mixture darkens slightly and the raw tomato smell cooks off. The rice should absorb most of the liquid.
  8. Pour the broth into the pot with the rice. Add the diced carrot, peas, bay leaf, and the chile you blistered earlier. If using epazote, place the sprig on top.
  9. Let the rice come to a gentle simmer and taste a bit of the broth. Adjust the salt now if needed.
  10. Lower the heat to the lowest setting, cover the pot, and cook for 15 minutes without lifting the lid.
  11. After 15 minutes, uncover the pot. If you see pale spots or uneven color, gently fluff the rice with a fork to distribute the tomato mixture. Do not stir aggressively. Cover again and cook for 2 more minutes on low.
  12. Turn off the heat and leave the pot covered for 25 to 30 minutes. Do not uncover during this time.
  13. Once ready, remove the chile, garlic clove, and bay leaf. Gently fluff the rice and serve warm.

Still hungry?

Want more recipes straight to your inbox?
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.