Warming Tomato and Pinto Bean Soup

Updated January 27, 2026

Rachel Vanni for The New York Times. Food Stylist: Spencer Richards.
Ready In
35 min
Rating
5(660)
Comments
Read comments

This is the bean soup for when you need something cozy and fast. Inspired by sopa Tarasca, a bean, tomato and chile soup from the Purépecha people of Michoacán in western Mexico, this version uses canned pinto beans and chipotles in adobo for convenience that doesn’t sacrifice flavor. And like almost every Mexican soup, you get to customize your bowl with toppings to match your mood. Use any broth you have on hand and add more chipotles if you’re craving heat.

  • or to save this recipe.

  • Subscriber benefit: Give recipes to anyone

    As a subscriber, you have 10 gift recipes to give each month. Anyone can view them - even nonsubscribers. Learn more.

  • Share this recipe

  • Print this recipe

Advertisement


Ingredients

Yield:6 servings
  • 3 tablespoons vegetable oil, such as avocado oil

  • ½ white or yellow onion, diced

  • 2 canned chipotle chiles in adobo, roughly chopped

  • 2 garlic cloves, minced

  • 1 teaspoon ground cumin

  • 1 teaspoon dried oregano, preferably Mexican

  • Kosher salt, such as Diamond Crystal

  • 2 (15-ounce) cans pinto beans, drained and rinsed (3 cups)

  • 2 Roma tomatoes, diced

  • 4 cups low-sodium vegetable or chicken broth

  • 1 ripe Hass avocado, for serving

  • ½ lime

  • Yogurt or Mexican crema, for serving

  • Tostadas or tortilla chips, for serving

Ingredient Substitution Guide
Nutritional analysis per serving (6 servings)

80 grams carbs; 6 milligrams cholesterol; 581 calories; 10 grams monosaturated fat; 3 grams polyunsaturated fat; 3 grams saturated fat; 18 grams fat; 19 grams fiber; 865 milligrams sodium; 27 grams protein; 7 grams sugar

Note: The information shown is Edamam’s estimate based on available ingredients and preparation. It should not be considered a substitute for a professional nutritionist’s advice.

Powered by

Preparation

  1. Step 1

    Add oil to a medium pot over medium heat. Once the oil is hot but not smoking, about 2 minutes, add the onion and chiles and cook, stirring occasionally, until the edges of the onion begin to change color, about 5 minutes. 

  2. Step 2

    Add the garlic, cumin, oregano and 1 teaspoon salt and cook, stirring frequently, until very fragrant, about 2 minutes. Add the beans, tomatoes and broth. Bring to a boil, reduce the heat to maintain a simmer and cook for 10 minutes, until tomatoes are falling apart. 

  3. Step 3

    Mash the beans and tomatoes with a masher or a wooden spoon, and simmer for 5 minutes more, stirring occasionally, until soup is slightly thickened. Taste for salt. 

  4. Step 4

    While the soup cooks, dice the avocado, squeeze the lime half over it and sprinkle with salt. Set aside until ready to serve. 

  5. Step 5

    To serve, ladle soup into bowls. Add a generous portion of diced avocado and top with a dollop of yogurt and a tostada if you wish.

Private Notes

Leave a Private Comment on this recipe and see it here.

Ratings

5 out of 5
660 user ratings
Your rating

or to rate this recipe.

Have you cooked this?

or to mark this recipe as cooked.

Comments

I was living in Mexico City when I misread a recipe that called for 2 canned chipotle peppers and included two cans. This gringo impressed his Mexican guests with the heat in my caldo talpeño! I think it's a mistake to write the direction this way, and should be 2 chipotle peppers (canned) since it's clearly easy to misread.

If you have it, I have found that Mexican oregano is totally different in flavor than Mediterranean types. Makes a huge difference in a recipe like this and conversely is a big mistake if you inadvertently use the Mexican type in an Italian dish. (Sorry if this is common knowledge to more "seasoned" cooks.)

Super simple and delicious. I used a small can of chopped tomatoes instead of fresh tomatoes. Instead of chicken or vegetable broth, I used the broth from cooking my own pinto beans.

I saw one review that compared this to thin canned bean dip. That is accurate. I made it exactly as written and found it to be quite bland. I do think it could be a good base recipe for a quick weeknight meal adding additional seasonings and an acid to give it more flavor and depth.

This was great! It's going on my 'quick and easy soups' short list. I substituted a ton of things out of sheer desire not to go to the store. I added a pinch of epazote & a bay leaf with the other spices. I had no limes so I used a little ReaLime powder at the end of cooking. No avocados or crema so I used a bit of cottage cheese that had dried to the almost-consistency of a queso fresco, plus cilantro & tortilla chips. My husband even thought it had meat in it. Probably the chipotle smokiness.

Excellent soup, My spice-adverse daughter was able to handle the heat, but if I was making this for myself, I’d add another 1 or 2 chipotle peppers. I subbed dried beans (9 oz. or about 1 and a third cup) for canned and then used the cooking liquid to replace about 2 cups of broth. It’s March so I didn’t use fresh tomatoes and subbed with crushed tomatoes to taste. I also puréed it with a stick blender. (Same daughter doesn’t like chunks in her soup — got me.) As another commenter said, use Mexican oregano if at all possible.

Private comments are only visible to you.

or to save this recipe.