Puerto Rican Arroz con Gandules
A classic Puerto Rican rice dish of golden-orange long-grain rice cooked in one pot with pigeon peas, blended sofrito, briny green olives, red bell pepper, and small browned cubes of pork shoulder, finished with a few darker, toasted bits from the bottom of the pot. Letting the rice reduce uncovered until the liquid falls just below the surface, rather than covering the pot straight away, is the technique this whole arroz con gandules depends on for separate, tender grains — a lid placed too early traps a soupy pot that steams into a sticky, mushy mass, the same watch-the-liquid-before-you-cover principle used elsewhere in this collection whenever rice must cook in a flavoured base. Browning the pork and cooking the sofrito until the oil turns orange-red is what builds the savoury, aromatic base the rice absorbs. Coating the rinsed grains in that fat and sofrito before any stock goes in is what keeps each one distinct and lightly glossy. The payoff is a pot of rice with real, layered flavour — savoury, porky, and slightly briny, with soft gandules, sweet pepper, tender separate grains, and a few caramelised bits from the bottom of the pot.

Prep Time : 20 min
Total Time : 1 hr 15 min
Servings : 4
20 min
1 hr 15 min
4
Ingredients
For the Sofrito
• ½ small yellow onion, roughly chopped
• ½ green bell pepper, roughly chopped
• ½ Cubanelle pepper, or ½ more green bell pepper, roughly chopped
• 4 garlic cloves
• 10g cilantro leaves and tender stems, about ¼ cup
• 1–2 culantro leaves, optional but very traditional
• 1–2 tbsp water, only as needed to help blend
For the Rice
• 2 tbsp neutral oil, about 30ml
• 200g pork shoulder or pork butt, cut into 1.5cm cubes, or ham or tocino if preferred
• 1 tsp adobo seasoning, or ¾ tsp kosher salt plus ¼ tsp black pepper
• 120ml prepared sofrito, from the batch above
• 2 tbsp tomato sauce, about 30ml
• 1 packet sazón with achiote, or 1 tsp annatto powder plus a pinch each of ground coriander and garlic powder
• ½ tsp dried oregano
• 1 bay leaf
• 50g pitted green olives, sliced or roughly chopped
• 50g red bell pepper, small-diced
• 1 can (about 400g) pigeon peas (gandules), drained, with a little of the can liquid reserved if desired
• 370g long-grain rice, preferably parboiled or converted, rinsed and drained well
• 600ml chicken stock, or 540ml stock plus 60ml reserved pigeon pea liquid
• ½–¾ tsp kosher salt, to taste
For the Finish
• 1–2 tbsp chopped cilantro, for a very light garnish
Directions
- Make the Sofrito
Add the onion, green bell pepper, Cubanelle pepper, garlic, cilantro, and culantro, if using, to a blender or small food processor. Blend to a thick, slightly coarse paste, adding the water 1 tbsp at a time and only as much as it takes to keep the blades moving. You need 120ml of paste for the pot, and it should look thick and spoonable rather than loose or soupy. Extra water here throws off the rice-to-liquid ratio later, so resist loosening it. That thickness is what keeps the flavour concentrated and the finished rice from turning wet. - Season and Brown the Pork
Toss the 200g pork cubes with the adobo seasoning, or with the salt and pepper, until every piece is evenly coated. Heat a heavy pot, caldero, or Dutch oven over medium heat, add the 2 tbsp oil, then add the pork in a single layer. Brown for 5–7 minutes, stirring only occasionally, until the outside no longer looks raw and a few edges take on colour. The pork does not need to cook through yet, because it finishes in the rice. Those browned bits stuck to the pot are what deepen the flavour of everything added after them. - Build the Flavour Base
Stir the 120ml sofrito into the pork and cook for 2–3 minutes, stirring, until the raw garlic and onion smell softens. Add the 2 tbsp tomato sauce, the sazón, ½ tsp oregano, bay leaf, olives, and red bell pepper, and cook for another 2 minutes. Stir in the drained pigeon peas and cook for 1 minute more. The mixture should smell deeply savoury, and the oil should start to turn orange-red. Lower the heat slightly if the garlic starts catching, because scorched sofrito turns bitter. That patience is what gives the rice its colour and depth. - Coat and Toast the Rice
Add the rinsed, well-drained rice to the pot and stir thoroughly for 1–2 minutes, scraping the bottom so every grain is coated with the sofrito mixture and fat. The grains should look slick and evenly tinted orange, with no pale patches left. Drain the rice properly after rinsing, because clinging water adds liquid you have not measured. That coating stage is what keeps the finished grains distinct and gives the rice its lightly glossy, separate texture. - Add the Stock and Balance the Seasoning
Pour in the 600ml chicken stock, or the stock and reserved pigeon pea liquid, and stir well, scraping the bottom of the pot to release any browned bits. Taste the liquid and stir in ½–¾ tsp kosher salt as needed. It should taste a little stronger and slightly saltier than you want the finished rice to taste, because the grains absorb seasoning as they cook. If using regular long-grain rice, begin with slightly less liquid and check earlier. That seasoning check is the last chance to correct the flavour. - Reduce Uncovered
Bring the pot to a lively simmer over medium heat and cook uncovered for 6–10 minutes, until most of the visible liquid has been absorbed and the level falls just below the rice surface. Small steam holes should appear across the top, and the surface should look mostly dry while the rice underneath stays moist. Do not cover while the rice is still loose and soupy. This is the key turning point, and that uncovered reduction is what sets the grains up to steam into separate, tender rice. - Steam on Low Heat
Gently stir once from the bottom up, just enough to redistribute the moisture, then reduce the heat to low. Cover tightly with a lid, placing foil under it or wrapping the lid in a clean towel if it fits loosely. Cook for 20–25 minutes on very low heat without lifting the lid. Too much heat burns the bottom before the rice finishes, and repeated peeking releases the steam and cooks the rice unevenly. That sealed, gentle heat is what finishes the grains evenly. - Rest and Fluff
Turn off the heat and let the rice rest, covered, for 10 minutes, then remove the bay leaf. Fluff gently with a fork or rice paddle, lifting from the sides and bottom, and scrape up a few of the darker caramelised bits from the base without mashing the grains. Scatter over the 1–2 tbsp chopped cilantro and serve straight from the pot. The rice should look golden-orange, glossy, and separate, with the pigeon peas spread evenly through it. That rest is what lets the grains finish setting and separate.
*Notes :
- The uncovered reduction deserves genuine recognition as the technique most directly responsible for whether this rice finishes with separate grains or a soupy, sticky mass. The recipe’s own instruction “Do not cover too early while the rice is still loose and soupy” reflects how a lid over free liquid traps steam and boils the grains instead of letting them absorb the stock gradually.
- Building the flavour base deserves the same attention this technique receives throughout this collection’s other sofrito- and spice-based rice dishes. Cooking the sofrito until the raw garlic smell softens and the oil turns orange-red releases fat-soluble colour and aroma that the rice then carries into every grain, and a rushed or scorched base cannot be repaired once the stock goes in.
- The thick sofrito deserves genuine respect as the detail most directly responsible for keeping the rice-to-liquid ratio accurate. The recipe’s own instruction “Do not make it watery” matters because every spoonful of extra water in the paste is liquid the rice must absorb or evaporate, and the margin between tender rice and a mushy pot is small.
- The 10-minute covered rest deserves attention as a genuine, checkable finishing cue rather than a loose approximation. The recipe’s own note that “Resting is essential” reflects how the grains finish setting and separating as residual steam redistributes, while lifting the lid early leaves wet, uneven rice with a noticeably softer bottom layer than top.
Why This Recipe Works
This recipe works because a thick sofrito and browned pork shoulder give the pot a concentrated, savoury base before any liquid goes in. Coating the rinsed parboiled rice in that seasoned fat keeps the grains distinct and lightly glossy. Stock seasoned slightly stronger than the finished rice should taste makes up for the salt the grains absorb, while an uncovered first cook reduces the liquid below the surface before the lid goes on. A tightly covered low steam and a 10-minute rest then finish the grains evenly, leaving tender, separate rice, soft gandules, and a few caramelised bits at the bottom.
Ingredient Breakdown
Uncovered First Cook (6–10 Minutes)
The critical technique — reducing the stock below the rice surface before covering prevents soupy rice and gives separate grains.
Thick Blended Sofrito
The flavour foundation — onion, peppers, garlic, and cilantro provide the aroma, and a thick paste protects the liquid ratio.
Parboiled Long-Grain Rice
The critical ingredient choice — it stays firm and separate through simmering and steaming, where regular long-grain turns mushy more easily.
Browned Pork Shoulder Cubes
The core flavour-building stage — small browned pieces leave savoury fond and scatter porky bites through the rice.
Covered Low Steam and Rest
The critical timing technique — 20–25 minutes of gentle steam plus a 10-minute rest set the grains without burning.
Sazón with Achiote and Tomato Sauce
The colour ingredient — with the sofrito they give a warm golden-orange tone, never deep red.
Green Olives and Red Bell Pepper
The finishing accent — chopped olives add small briny bursts, while modest red pepper adds sweetness and colour.
Flavor Structure Explained
This Puerto Rican arroz con gandules follows a layered balance model:
- Savoury, porky foundation (browned pork shoulder, adobo, chicken stock)
- Aromatic, herbal base (sofrito, garlic, cilantro, oregano, bay leaf)
- Briny, sweet accents (green olives, red bell pepper)
- Earthy, tender body (pigeon peas, long-grain rice)
- Warm golden colour (sazón with achiote, tomato sauce)
Browned pork and chicken stock supply the savoury, porky foundation that the rice absorbs as it cooks, and the browned bits left in the pot deepen it further. Sofrito, garlic, cilantro, and oregano add the aromatic, herbal base, while green olives and red bell pepper give small briny and sweet accents. Pigeon peas bring an earthy softness against the tender grains, and sazón with tomato sauce gives the warm golden colour that ties the pot together.
Common Mistakes to Avoid
- Making the Sofrito Watery – This adds extra liquid that throws off the rice-to-stock ratio and leaves the finished pot soft and wet. Always add water a spoonful at a time and only as needed.
- Covering the Pot Too Early – This traps steam over loose, soupy rice and boils the grains into a sticky mass. Always wait until the liquid falls just below the surface and steam holes appear.
- Scorching the Sofrito – This leaves bitter, burnt garlic notes that spread through the entire pot of rice. Always lower the heat slightly if the garlic starts catching.
- Lifting the Lid While Steaming – This releases steam and cooks the rice unevenly, leaving a firm top and a soft or scorched bottom. Always keep the heat very low and the lid on for the full 20–25 minutes.
- Stirring After the Liquid Reduces – This breaks the grain structure and releases starch, making the rice sticky instead of separate. Always stir once from the bottom up before covering, then leave it alone.
Variations
Ham Version
Replace the pork shoulder with small cubes of ham, smoked ham, or tocino, per the recipe’s own note, for a saltier, smokier rice, though without the small browned meaty pieces.
Regular Long-Grain Version
Use regular long-grain rice instead of parboiled, starting with slightly less stock and checking the pot earlier, because it softens faster and turns mushy more easily.
Pigeon Pea Liquid Version
Use 540ml stock plus 60ml of the reserved can liquid from the gandules instead of 600ml stock for a slightly earthier, more pigeon-pea-forward rice.
Annatto Version
Replace the sazón packet with 1 tsp annatto powder and a pinch each of ground coriander and garlic powder for the same warm golden-orange colour without the packaged seasoning.
Storage & Make-Ahead
Blend the sofrito up to 3 days ahead and refrigerate it in a sealed jar, or freeze it in small portions for up to 3 months, so the pot comes together much faster on the day.
Season and cube the pork up to 24 hours ahead and keep it covered in the refrigerator, but rinse and drain the rice only just before cooking so it stays evenly absorbent.
Serve the rice within 20–30 minutes of fluffing, keeping the pot covered so it stays warm, because the grains firm up and lose their lightly glossy texture as the pot cools.
Cool leftovers within 2 hours and refrigerate them in an airtight container for up to 4 days, spreading the rice in a shallow layer so it chills quickly.
Reheat portions covered with a splash of water or stock in a skillet or microwave until steaming hot throughout, or freeze in airtight containers for up to 2 months and thaw overnight.
Frequently Asked Questions
Why does the rice cook uncovered before the lid goes on?
Reducing the stock uncovered lets the visible liquid fall just below the rice surface first, so the grains then steam gently instead of boiling in a soupy pot and turning sticky.
Why does the sofrito need to stay thick instead of watery?
Every spoonful of extra water in the paste adds liquid the rice must absorb or evaporate, so a thick, concentrated sofrito keeps the stock ratio accurate and the finished grains separate.
Why should the cooking liquid taste slightly saltier than the finished rice?
Rice absorbs seasoning as it cooks, so a stock that tastes just right at the start produces bland grains, while a slightly stronger liquid seasons them properly by the end.
Why does the pot stay covered and undisturbed for the steam and the rest?
Steam does the final cooking, and opening the lid releases it, so a sealed pot on very low heat followed by a 10-minute rest cooks and sets every grain evenly.
Are there other classic Caribbean, Dominican, or rice-and-beans dishes worth trying?
Caribbean Coconut Rice and Beans offers another classic island rice-and-beans direction worth exploring. La Bandera Dominicana and Dominican Pollo Guisado are also worth trying for other Dominican directions, and Pollo Asado with Rice and Beans and Mexican-Style Rice offer other Latin rice dishes worth exploring.
Nutrition Facts
( Per Serving )
Calories
~620 kcal
Protein
21 g
Fat
19 g
Carbs
91 g
Calories
~620 kcal
Protein
21 g
Fat
19 g
Carbs
91 g
Related Recipes
Related Recipes
You might also like
You might also like

Puerto Rican Arroz con Gandules
Ingredients
Method
- Add the onion, green bell pepper, Cubanelle pepper, garlic, cilantro, and culantro, if using, to a blender or small food processor. Blend to a thick, slightly coarse paste, adding the water 1 tbsp at a time and only as much as it takes to keep the blades moving. You need 120ml of paste for the pot, and it should look thick and spoonable rather than loose or soupy. Extra water here throws off the rice-to-liquid ratio later, so resist loosening it. That thickness is what keeps the flavour concentrated and the finished rice from turning wet.
- Toss the 200g pork cubes with the adobo seasoning, or with the salt and pepper, until every piece is evenly coated. Heat a heavy pot, caldero, or Dutch oven over medium heat, add the 2 tbsp oil, then add the pork in a single layer. Brown for 5–7 minutes, stirring only occasionally, until the outside no longer looks raw and a few edges take on colour. The pork does not need to cook through yet, because it finishes in the rice. Those browned bits stuck to the pot are what deepen the flavour of everything added after them.
- Stir the 120ml sofrito into the pork and cook for 2–3 minutes, stirring, until the raw garlic and onion smell softens. Add the 2 tbsp tomato sauce, the sazón, ½ tsp oregano, bay leaf, olives, and red bell pepper, and cook for another 2 minutes. Stir in the drained pigeon peas and cook for 1 minute more. The mixture should smell deeply savoury, and the oil should start to turn orange-red. Lower the heat slightly if the garlic starts catching, because scorched sofrito turns bitter. That patience is what gives the rice its colour and depth.
- Add the rinsed, well-drained rice to the pot and stir thoroughly for 1–2 minutes, scraping the bottom so every grain is coated with the sofrito mixture and fat. The grains should look slick and evenly tinted orange, with no pale patches left. Drain the rice properly after rinsing, because clinging water adds liquid you have not measured. That coating stage is what keeps the finished grains distinct and gives the rice its lightly glossy, separate texture.
- Pour in the 600ml chicken stock, or the stock and reserved pigeon pea liquid, and stir well, scraping the bottom of the pot to release any browned bits. Taste the liquid and stir in ½–¾ tsp kosher salt as needed. It should taste a little stronger and slightly saltier than you want the finished rice to taste, because the grains absorb seasoning as they cook. If using regular long-grain rice, begin with slightly less liquid and check earlier. That seasoning check is the last chance to correct the flavour.
- Bring the pot to a lively simmer over medium heat and cook uncovered for 6–10 minutes, until most of the visible liquid has been absorbed and the level falls just below the rice surface. Small steam holes should appear across the top, and the surface should look mostly dry while the rice underneath stays moist. Do not cover while the rice is still loose and soupy. This is the key turning point, and that uncovered reduction is what sets the grains up to steam into separate, tender rice.
- Gently stir once from the bottom up, just enough to redistribute the moisture, then reduce the heat to low. Cover tightly with a lid, placing foil under it or wrapping the lid in a clean towel if it fits loosely. Cook for 20–25 minutes on very low heat without lifting the lid. Too much heat burns the bottom before the rice finishes, and repeated peeking releases the steam and cooks the rice unevenly. That sealed, gentle heat is what finishes the grains evenly.
- Turn off the heat and let the rice rest, covered, for 10 minutes, then remove the bay leaf. Fluff gently with a fork or rice paddle, lifting from the sides and bottom, and scrape up a few of the darker caramelised bits from the base without mashing the grains. Scatter over the 1–2 tbsp chopped cilantro and serve straight from the pot. The rice should look golden-orange, glossy, and separate, with the pigeon peas spread evenly through it. That rest is what lets the grains finish setting and separate.






