In Yucatecan households, Monday means frijol con puerco. Not as a rule anyone enforces, just as a habit so old that cooks buy the pork on Sunday without discussing it. The usual explanation is practical: a pot of beans and meat sits on low heat for hours and asks almost nothing of the person watching it, which suited a day given over to washing and the start of the week. Whether or not that is the whole story, the rhythm has held, and in plenty of kitchens and cocinas económicas around Tulum you can still tell the day of the week by what is on the stove.
The dish itself is simple to the point of bareness. Black beans and pork go into one pot with onion, garlic and epazote and cook until the beans give way and the meat pulls apart under a spoon. What comes out is not a stew and not a soup but something between the two: a loose, almost black broth with soft beans suspended in it and pieces of pork that have taken on the bean flavour. It is served over white rice, in a bowl, with the broth soaking down through the grains.
Everything bright in the dish arrives at the table, not in the pot. A charred tomato salsa with habanero and sour orange, chopped white onion, a heap of cilantro, thin coins of radish and a wedge of lime. These are not optional garnishes. The beans are deep and a little heavy on their own, and the salsa and the raw vegetables are what make each spoonful land. A plate of frijol con puerco without radish looks to a Yucatecan eye like an unfinished plate.
Two things get lost outside the region. The first is the consistency: this should be soupy, not thick, and cooks who reduce it to a refried paste have made something else. The second is the cut of pork. Lean loin dries out and contributes nothing to the broth. What you want is shoulder with the bone in, or ribs, or a mix, with enough fat and connective tissue to give the beans body over three hours. Espinazo, the pork backbone, is what many cooks here use precisely for that reason.
It reheats better than it cooks, so make the full pot. The beans keep drinking the broth overnight, which means you will be adding water on the second day, and the second day is the one people quietly prefer.
Ingredients
18 items · for 6For the beans and pork
- 500 g dried black beans (about 2 1/2 cups)
- 1.2 kg bone-in pork shoulder, cut into large chunks, or a mix of shoulder and pork ribs
- 1 large white onion, halved
- 6 garlic cloves, peeled and lightly crushed
- 3 sprigs fresh epazote
- 3 litres water, plus more as needed
- 2 tsp fine salt, plus more to taste
For the charred tomato salsa
- 6 ripe plum tomatoes
- 1 habanero chilli
- 1/2 small white onion, finely chopped
- 3 tbsp chopped cilantro
- 3 tbsp sour orange juice (naranja agria), or 2 tbsp orange juice plus 1 tbsp lime juice
- 1/2 tsp salt
To serve
- 400 g long-grain white rice (about 2 cups), cooked plain
- 8 radishes, thinly sliced or finely chopped
- 1 small white onion, finely chopped
- 1 large bunch cilantro, chopped
- 3 limes, cut into wedges
Step by step
8 stepsSort and rinse the beans
Spread the dried beans on a tray and pick out any stones, split beans or bits of husk. Rinse in a colander until the water runs clear. Soaking is not traditional here and is not necessary, though an overnight soak will cut around forty minutes off the cooking time. If you soak, drain and rinse before cooking.
Start the beans
Put the beans in a large heavy pot with 3 litres of water, the halved onion and the garlic. Bring to the boil, then lower to a steady simmer with the lid slightly ajar. Cook for about 45 minutes, until the beans have started to soften but still hold their shape. Do not salt yet.
Add the pork
Rinse the pork and lower the pieces into the pot. The water should cover everything by about 3 cm, so top up with hot water if needed. Bring back to a simmer and skim off the grey foam that rises in the first ten minutes. Add the epazote sprigs. Cover partially and cook at a low, lazy simmer.
Simmer until both give way
Cook for 1 1/2 to 2 hours, stirring now and then and adding hot water whenever the level drops below the beans. It is ready when the beans crush easily against the side of the pot and the pork pulls apart with a spoon but still holds together in pieces. Add the salt at this point, taste, and adjust. The broth should be dark, loose and slightly thickened by the beans, closer to soup than to stew. If it is too thick, add hot water; if too thin, simmer uncovered for fifteen minutes.
Char the tomatoes for the salsa
While the beans finish, set the whole tomatoes and the habanero in a dry comal or heavy frying pan over medium-high heat. Turn them every few minutes until the skins are blistered and blackened in patches and the flesh has softened, about 10 to 12 minutes. Let them cool enough to handle.
Make the salsa
Chop the tomatoes roughly, skins and all, and mash them in a bowl or molcajete to a coarse, wet pulp. Mince the habanero very finely, seeds removed if you want less heat, and stir it in along with the chopped onion, cilantro, sour orange juice and salt. It should be spoonable and sharp. Leave it to sit for fifteen minutes before serving.
Cook the rice and set out the garnishes
Cook the white rice plain, however you normally do it, and keep it warm. Put the sliced radish, chopped onion, chopped cilantro and lime wedges into separate small bowls. These go on the table, not into the pot.
Serve in bowls
Spoon a mound of rice into each wide bowl, then ladle the beans, broth and a piece or two of pork over and around it so the rice sits partly submerged. Each person adds salsa, radish, onion, cilantro and a squeeze of lime to their own bowl. Serve hot, with more broth for topping up as people eat.
Notes from the kitchen
- Epazote has no real substitute. If you cannot find it fresh or frozen at a Latin grocer, leave it out rather than reaching for oregano or bay, which pull the dish in the wrong direction.
- Cut matters more than quantity. Bone-in shoulder, ribs or espinazo all work because the bone and fat enrich the broth. Pork loin will leave the beans thin and the meat dry.
- Naranja agria is sold bottled in Mexican groceries. Without it, two parts orange juice to one part lime juice is a close enough stand-in for the salsa.
- It keeps three or four days in the fridge and freezes well. The beans absorb the broth as they sit, so reheat gently with a good splash of water and check the salt again before serving.
This is the standard Yucatecan household version, the one cooked on Mondays in home kitchens and served in cocinas económicas across the peninsula.
This photograph was generated with artificial intelligence and may differ from the finished dish.

