JOIN! 12 Weeks for $1

Mexican Stewed Beans with Salsa Fresca

6-8 Servings

1¾ hours plus overnight soak and resting

Made This Recipe? Write a Review.
Thank you for submitting your review! A member of our team is confirming the review meets our site's Community Guidelines. It will be posted on the site shortly.

In Mexico City, we learned to prepare traditional stewed beans, as well as a version enriched with pork. Sofrito—a sauté of aromatics cooked separately from the dish’s central ingredient(s)—is a key flavoring for the beans. Our sofrito consists of onion, garlic, tomatoes and jalapeños cooked down to concentrate their essences and is added only after the beans are fully cooked. Instead of the pinto beans so common in Mexican cooking, we opted to use cranberry beans (also called Roman or borlotti beans). We found that the pinto beans available in the U.S. do not cook up with the same plumpness and velvety texture as the ones we tasted in Mexico; cranberry beans were a closer approximation. Though tan in color with speckles of red, dried cranberry beans, when cooked, resemble pinkish beige pinto beans. If you wish to make this dish with pork, see the recipe below; it yields a meaty broth for cooking the beans and shredded pork for stirring in at the end. A fresh tomato salsa served on the side brightens and lightens the earthiness of the beans. The most efficient way to approach this multi-component recipe is to prep and cook the sofrito during the 1 hour that the beans simmer and make the salsa while the cooked beans rest for 30 minutes. Note that the pork and broth need to be made before you begin cooking the beans, but can be made up to three days in advance.




Don’t forget soak the beans overnight. Soaked beans cook more evenly and quickly than unsoaked ones. A couple tablespoons of salt in the soaking water produces a creamier, more velvety texture in the cooked beans.

1¾ hours

plus overnight soak and resting

For the beans:

  • 1

    pound dried cranberry beans (see headnote), picked over and rinsed


Pardon the interruption

You need to be a Milk Street Digital Member to see the full recipe


and get access to all of our recipes and articles online, as well as in print.

How we use your email.

Your email address is required to identify your subscription. We will use it for customer service as well as other communications from Milk Street. We will not share, or rent your email address.

Dennis D.
October 24, 2023
Great way to make beans!
I made these beans per recipe with salsa fresca, but no meat. My wife says beans aren't her thing, yet, she went on and on about how good they were..........and they were! Thanks for this recipe, Milk Street!
john f.
January 23, 2023
tasty beans
Used pinto beans. soaking cranberry beans to make it again.
stanton m.
January 7, 2023
Use heirloom beans
get your heirloom beans (like Cranberry) at Rancho Gordo.
Keith G.
December 28, 2022
Best Beans Ever
This is my go-to recipe for wonderful beans. It may take a little effort but, as they say, the proof is in the pudding. I have used cranberry beans and Anasazi beans and both were perfect. This is an easy recipe but takes time and patience- so worth it!
Michael P.
November 19, 2022
Time consuming but full of heart and soul and flavor
Made this with Rancho Gordo Magnifico Bortollo beans in their clay pot. Was excellent... I'd be tempted to skip the pork next time because it almost masks some of the bean excellence.
Laura L.

Made this with the pork and pork broth as well as the salsa fresca. These are completely worth the time and effort. The beans are delicious prior to adding the sofrito, and only get better as the sofrito and salsa are added. And they are fantastic the day after. Make these. Seriously.

Susan C.

Thank you for your comment! Your comment is currently under moderation and will appear shortly.

Holly W.

Lovely. Both times I’ve made this the beans took fully two hours. I soaked them for 24 hours prior to cooking. Each part of this recipe is superb.

Thomas M.

I have never seen cranberry beans in any supermarket near where I live. What are alternatives?

Craig J.

We had the same problem. We used Roman beans and it had the consistency they discussed on the podcast. One source we found claimed that borlotto, crab eye, roman, romano, rosecoco, saluggia beans, burlotti are all other names for cranberry beans, but haven’t confirmed.

Kathryn J.

A great bean source is: GREAT beans!

William H.

I have found them at King Soopers (Kroger) and Walmart.

Daniel V.

Us nutritional information available for recipes??

Lynn C.

Hi Daniel -

We understand that it's helpful to know the nutritional information for recipes. However, since we are not a health food magazine we do not have a nutritionist on staff to accurately calculate the nutritional details for all of our recipes. I would suggest using a smartphone app or website into which you can enter ingredients and get some nutritional information. These aren't 100% accurate (which is why we can't use them and publish their results), but they should give you a general picture of the nutritional details of a dish. We hope this helps!

The Milk Street Team

Lynn C.

Hi Thomas -

These are sometimes labeled as Roman or Borlotti beans in the market, so check for those names as well. If you can't find them, you could substitute dried pinto beans, but they won't have the same velvety texture and, since they are smaller, will probably cook a bit faster.

The Milk Street Team

William H.

Thank you for your comment! Your comment is currently under moderation and will appear shortly.

Kristen B.

Made this with Rancho Gordo Ayocote Morados, and it was so delicious I can't stop eating them. A flour tortilla with a little char from the gas burner was perfect.

Craig J.

We made it and it was fantastic. Our modifications:
Salsa Fresca - a tiny bit of cumin powder, a dusting of guajillo powder, and lemon drop peppers
Bean stew: also a little cumin powder. Added a dried ancho and two dried guajiilo peppers (both rehydrated in warm water - discarded the water and added peppers) for the hour simmer. While the beans were cooling, removed peppers, homogenized, then added back in half of the paste. Served with some browned chorizo on the side as a topping. We also served on top of Mexican rice.

Laraine A.

Thank you for your comment! Your comment is currently under moderation and will appear shortly.

Louise T.

I've wanted to make these beans ever since I heard Chris Kimbell describing them on the podcast. Finally, today was the day. Incredible, easily the best beans I've ever eaten! We used Good Mother Stallard beans from Rancho Gordo and left out the pork (vegetarian). Unbelievable, sublime. Thank you for the wonderful story and a yummy dinner tonight!

Laraine A.

Made these for a second time today. They are delicious. Make great burritos, and great with a salad and tortillas.

Gretchen M.

These were incredible, especially when paired with the Pork Carnitas from Milk Street. Would the leftover beans freeze well?

Wayne C.

I made these for the first time last night. Absolutely delicious! Rather than 2 pounds of boneless pork shoulder, I used twice as much weight of pork neck bones, and ended up with about the same amount of shredded pork, after removing bones, fat and gristle. Then I chilled the pork broth so the fat rose to the surface. I skimmed it, but then used some of the pork lard for the beans and sofrito parts of the recipe, and froze the rest for the future. Can't wait to try the leftover beans today...

Wayne C.

Also, do NOT throw out the leftover liquid from the salsa after you strain it. It has incredible flavor. I chilled it and ate it as cold soup. I also mixed some in with the leftover beans. Fantastic...!

Michele R.

Keeper! Great as recipe is written and can also be 'tweaked' recipe for delicious results. We cook a lot of bean dishes at our house in any year and in 2020 even more than a lot of them and as I post this in October it seems this may be our favorite of all we've made this year.

1. Like Wayne C, I started with pork neck bones (3#) for stock (see my comments on stock recipe). After removing the bones (to pick and use the meat), I strained the stock (important step) and chilled it overnight to let big fat cap rise to the top to lift off. Used the fat to saute onions and cilantro stems and also for cook of the sofrito. (You can freeze and save the fat cap for other recipes as it is basically a savory lard). Delicious stock. Next time I will choose pork shoulder option included in recipe string to use that pork stock.

2. We chose Rancho Gordo cranberry beans here.

3. Recipe is forgiving of 'shortcuts'. Example, if you don't have fresh tomato for the sofrito, a small can (14 oz?) of Mutti polpi (very fine chopped tomatoes - this is a great 'shortcut' pantry item for a lot of dishes) works well cooked down in step 3.

4. If you're serving someone who won't eat raw tomatoes (really - those someones exist) and so are skipping salsa for them, the beans do need a kiss of acid at the end and a squeeze of lime in the bowl as it is served works.

5. Beans are even better a day or two after they are made. They freeze well too.

Kulpreet $.

Great and helpful comments, Michele. You've got me intrigued...what were some of your other favorite bean recipes from 2020? :)

Alkuds J.

I made this with pinto beans from Sinaloa, Mexico. They were delicious!
What a treat! I can’t wait to try the cranberry beans ! Thank you!

Karen W.

These are the most delicious beans I’ve ever made. Well worth the time it took to make. I used organic pinto beans because I couldn’t find any cranberry beans in my grocery stores. Any idea where I can get them? Don’t need the quantities they sell on Amazon.

Sally S.

I agree with the comments posted. These are the best beans. They were beautiful, rich, creamy, and full of flavor.

John M.

Another exemplary Milk Street recipe! These beans were amazingly delicious. I made it as written (incl. pork & pork broth) save for a couple of modifications (hat tip to you helpful commenters): 1) No ripe tomatoes in sight now, so I used a 14 oz. can of fire roasted diced tomatoes instead. 2) I added one rehydrated ancho and two rehydrated guajillo chiles for the one hour bean simmer. I will definitely make this one again & again. Thanks once again, Diane & the Milk Street team!

Renee H.

I just started eating vegan and signed up for Milk Street, because a lot of the recipes are easily customizable to vegan. I made these beans and they were delicious. I really thought they were going to be bland. I still don't understand how a handful of ingredients made these so delicious! These beans were amazing. I am not even a bean person. As someone said these would go great in a burrito. For the oil, I used Miyoko's butter. I also used Rancho Gordo beans. I let the beans soak overnight and I used the instant pot for 45 mins with a 20 min release. For the broth I used Better Than Bouillon Vegetable. Would make again.

Michael L.

Love this recipe! This is the best bean recipe ever! Made it as written except I used canned tomatoes. I found the cranberry beans on the evil empire(Amazon) and they were fantastic!