Follow Me On Social Media!
Mom’s Authentic Puerto Rican Rice & Beans: A Taste of Home in Every Bite

There’s a dish that sits at the very heart of Puerto Rican culture, a symphony of flavors that whispers of home, family, and celebration. It’s not just food; it’s a fragrant hug from your abuela, the soundtrack to a Sunday afternoon, and the undisputed star of every holiday table. That dish is Arroz con Gandules—Puerto Rican Rice and Pigeon Peas. This isn’t merely a recipe; it’s an heirloom, passed down through generations, and today, I’m sharing my mom’s authentic, foolproof version. We’ll build it from the ground up, starting with the essential, aromatic homemade sofrito that is the non-negotiable soul of this dish. This one-pot wonder yields perfectly seasoned, fluffy rice studded with tender gandules, all infused with the unmistakable warmth of Puerto Rican cooking. So, roll up your sleeves—we’re not just making dinner; we’re creating a memory.
The Cultural Heartbeat: More Than Just Rice and Beans
Before we dive into the ingredients, it’s crucial to understand the why behind the dish. In Puerto Rico, Arroz con Gandules is more than a side; it’s the national dish, a symbol of identity and resilience. The gandules (pigeon peas) are a historical touchstone, a crop brought from Africa that thrived in the Caribbean soil. The rice, a staple, represents sustenance. Together, cooked with a foundation of sofrito—a blend of indigenous, Spanish, and African influences—they tell the story of the island itself.
The act of making this dish is often a communal one. The sound of the sofrito ingredients being chopped in a pilón (wooden mortar and pestle), the sizzle of recaito hitting hot oil, the gentle simmer of the rice absorbing all the flavors—these are the sensory markers of a Puerto Rican kitchen. This recipe honors that tradition, insisting on from-scratch components for the most vibrant, authentic flavor possible. The store-bought shortcuts exist, but they simply cannot replicate the depth and love cooked into every batch made the traditional way.
Why This Recipe Works Every Time
This authentic Puerto Rican rice and beans recipe is meticulously tested to deliver restaurant-quality results at home. The secrets lie in the technique: toasting the rice in the seasoned oil before adding liquid builds a nutty base flavor and helps prevent mushy grains. The precise liquid-to-rice ratio, adjusted for the addition of wet sofrito and tomato sauce, guarantees perfectly separate, fluffy rice every single time. We also use a two-part cooking method—building intense flavor with the sofrito and meats first, then gently steaming the rice—which is the hallmark of a proper one-pot rice recipe. Finally, the “pegao” or the coveted crispy bottom layer of rice is not a mistake; it’s a delicacy we encourage by allowing the final minutes of cooking to form that golden crust. This recipe is your blueprint for mastering a cornerstone of traditional Boricua food.
Ingredients
For the Homemade Sofrito & Seasoning:
- 1 large green bell pepper, roughly chopped
- 1 large red bell pepper, roughly chopped
- 1 large yellow onion, roughly chopped
- 1 head of garlic, cloves peeled (about 8-10 cloves)
- 1 large bunch of fresh cilantro (stems and leaves)
- 1 large bunch of recao (culantro)*
- 1-2 ajíes dulces (sweet chili peppers)*
- ¼ cup extra virgin olive oil
For the Homemade Sazón (Makes extra, store remainder):
- 2 tbsp ground coriander
- 2 tbsp ground cumin
- 2 tbsp garlic powder
- 2 tbsp dried oregano
- 1 tbsp ground annatto (achiote) powder
- 1 tbsp salt
- 1 tsp black pepper
For the Arroz con Gandules:
- ¼ cup olive oil or achiote oil
- ½ cup diced ham steak or tocino (salt pork), optional but traditional
- 1 cup homemade sofrito (from above)
- ¼ cup tomato sauce
- 2 tbsp homemade sazón (from above)
- 1 tsp dried oregano
- 2 bay leaves
- 4 cups medium or long-grain white rice, rinsed until water runs clear
- 4 cups water or low-sodium chicken broth
- 2 (15 oz) cans gandules (pigeon peas), drained and rinsed
- ½ cup pitted green manzanilla olives
- 1 tbsp capers, drained (optional)
- 1 large potato, peeled and cut into 1-inch cubes (optional, for “sorullitos” within the rice)
- Salt to taste

*Note: If you cannot find recao or ajíes dulces, simply increase the cilantro and add a pinch of paprika for sweetness and color. The sofrito will still be excellent.
Instructions
- Make the Sofrito Base: In a food processor, combine the green and red bell peppers, onion, garlic, cilantro, recao, and ajíes dulces. Pulse until a coarse, vibrant green paste forms. With the processor running, slowly stream in the ¼ cup of olive oil until well combined. This makes about 2-3 cups. Use 1 cup for this recipe and freeze the remainder in an ice cube tray for future use.
- Make the Sazón: In a small bowl, whisk together all the sazón ingredients until uniformly combined. Store in an airtight jar.
- Toast the Rice (Crucial Step): In a large, heavy-bottomed caldero or Dutch oven (at least 6 quarts), heat the ¼ cup of oil over medium heat. Add the rinsed and drained rice. Stir constantly for 3-4 minutes until the rice grains become opaque and just begin to toast slightly. This step seals the starch. Transfer the toasted rice to a bowl and set aside.
- Build the Flavor Foundation: In the same pot, add the diced ham (if using) and cook for 2-3 minutes until it renders some fat and browns slightly. Add the 1 cup of homemade sofrito. Cook, stirring frequently, for 8-10 minutes until the mixture darkens in color, the raw onion smell disappears, and the kitchen is incredibly fragrant. This is called “cooking down the sofrito” and is non-negotiable for depth of flavor.
- Incorporate Aromatics: Stir in the tomato sauce, 2 tablespoons of homemade sazón, dried oregano, and bay leaves. Cook for another 2 minutes, letting the tomato sauce caramelize a bit.
- Combine and Simmer: Add the water or broth, drained gandules, olives, capers, and potato cubes (if using). Bring the mixture to a rolling boil over high heat. Taste the broth—it should be well-seasoned, almost salty, as the rice will absorb much of the flavor. Adjust salt with caution.
- Add the Rice and Cook: Gently stir in the toasted rice. Bring back to a boil, then immediately reduce the heat to the lowest possible setting. Cover the pot tightly with a lid. Do not peek for 20 minutes.
- Steam and Form the Pegao: After 20 minutes, the liquid should be absorbed and the rice tender. Gently fluff the top layer of rice with a fork. Re-cover the pot and let it cook on low for another 10-15 minutes to develop the pegao (crispy bottom).
- Serve: Before serving, you can mix some of the pegao into the rice or serve it on top as a special treat. Discard the bay leaves. Garnish with fresh cilantro or avocado slices.
Pro Tips for Perfect Arroz con Gandules
- Rice is Key: Always use medium or long-grain white rice. Do not use parboiled, minute rice, or jasmine rice, as the texture and liquid absorption will be wrong. Rinsing until the water runs clear is essential to remove excess starch and prevent gummy rice.
- The Pot Matters: A heavy, thick-bottomed pot (a traditional caldero is ideal) distributes heat evenly and is the best tool for achieving the perfect pegao without burning.
- Don’t Peek! The 20-minute covered cooking time is sacred. Lifting the lid releases precious steam and can result in undercooked rice.
- Broth vs. Water: Using a low-sodium chicken broth adds another layer of savory flavor (called umami), but water works perfectly fine, especially if you have a well-seasoned sofrito and sazón.
Creative Variations & Serving Suggestions
This easy Latin dinner is fantastically versatile.
- Protein-Powered: Add 1 lb of cubed pork shoulder or chicken thighs in step 4, browning them before adding the sofrito. Cook until tender before proceeding.
- Vegetarian/Vegan: Omit the ham and use vegetable broth. The dish is still incredibly flavorful and hearty from the sofrito and peas.
- Christmas Version (Arroz con Gandules Navideño): Add ½ cup of chopped roasted red peppers and a handful of raisins when adding the gandules for a festive touch.
- How to Serve: This is a complete meal on its own, but it’s traditionally served with pernil (roast pork), pollo guisado (stewed chicken), or carne frita (fried pork chunks). A simple side of avocado or a crisp green salad with citrus dressing provides a fresh contrast. Don’t forget a few slices of maduros (sweet fried plantains) on the side!

Storing and Reheating Your Leftover Treasure
Leftover Arroz con Gandules might be even better the next day, as the flavors continue to meld. Store in an airtight container in the refrigerator for up to 5 days. To reheat, the best method is in a skillet with a tiny splash of water over medium-low heat, covered, until steaming hot. This helps revive the texture. You can also microwave it with a damp paper towel over the bowl. The pegao can be reheated in a dry, hot skillet to re-crisp it.
A Final Note from the Heart
Making this dish is an act of love and patience. It connects us to the abuelas and madres who measured with their hearts and seasoned with generations of knowledge. As you sit down to enjoy your plate of golden rice, savory peas, and that irresistible crispy bottom, know that you’ve done more than follow a recipe. You’ve kept a beautiful tradition alive. ¡Buen provecho!

Mom’s Authentic Puerto Rican Rice & Beans (Arroz con Gandules)
Ingredients
Equipment
Method
- Make the sofrito: In a food processor, pulse bell peppers, onion, garlic, cilantro, recao, and ajíes dulces into a coarse paste. Stream in olive oil. Set aside 1 cup.
- Make the sazón: Whisk all sazón ingredients together in a small bowl. Store extra in a jar.
- Toast the rice: In a large caldero, heat oil. Add rinsed rice and toast for 3-4 minutes, stirring. Remove rice to a bowl.
- Cook ham (if using) in the same pot for 2-3 minutes. Add 1 cup sofrito and cook for 8-10 mins until darkened and fragrant.
- Stir in tomato sauce, 2 tbsp sazón, oregano, and bay leaves. Cook for 2 more minutes.
- Add water/broth, gandules, olives, capers, and potato (if using). Bring to a rolling boil. Taste and adjust salt.
- Stir in the toasted rice. Return to a boil, then immediately reduce heat to low. Cover tightly and cook for 20 minutes WITHOUT PEEKING.
- After 20 mins, fluff the top layer of rice with a fork. Re-cover and cook on low for another 10-15 mins to form the pegao (crispy bottom).
- Turn off heat. Let rest, covered, for 5 minutes. Gently mix some pegao into the rice if desired. Discard bay leaves. Serve hot.



