Main Courses
This old-fashioned Spanish rice recipe with ground beef brings the soul of a Cuban family kitchen to your stovetop, where saffron-infused rice meets tender beef in a single pan. 🌟 The secret lies in the sofrito—a fragrant blend of tomatoes, peppers, and onions—that builds deep, layered flavor while the rice cooks.
I first learned this technique from my grandmother’s recipe box, where every ingredient had purpose and every step mattered.
The beauty of this dish is its simplicity: just one pot, minimal prep, and a 30-minute cook time that delivers restaurant-quality results. The ground beef browns first, releasing its rich flavors into the sofrito base before the rice absorbs everything like a flavor sponge.
Saffron threads dissolve into the rice, giving it that signature golden hue and delicate aroma that makes this dish unforgettable.
By the time you’re done, you’ll have a tender, aromatic rice dish where each grain is infused with beefy, smoky notes and a touch of sweetness from the tomatoes. The texture is perfect—neither mushy nor dry—with a crust at the bottom that’s crispy enough to satisfy even the pickiest eaters.
This is comfort food at its finest, the kind that makes you feel like you’re sitting at a Cuban abuela’s table.
Serve it alongside black beans, grilled plantains, or a simple green salad for a complete meal. The leftovers reheat beautifully, making it ideal for meal prep or feeding a crowd. Let’s get cooking—this recipe is a game-changer for weeknight dinners.
Ingredients for old fashioned spanish rice recipe with ground beef
Nine essential ingredients transform into a fragrant, beefy Spanish rice masterpiece.
| Ingredient | Amount | Notes |
|---|---|---|
| Ground Beef 🥩 | 1 ½ lb | Lean or 80/20 preferred |
| Long-Grain White Rice 🍚 | 2 cups | Uncooked, medium grain |
| Canned Tomatoes 🍅 | 1 can | 14.5 oz, crushed preferred |
| Yellow Onion 🧅 | 1 whole | Medium size, diced |
| Green Bell Pepper 🌶️ | 1 whole | Medium size, diced |
| Garlic Cloves 🧄 | 4 cloves | Fresh, minced |
| Saffron Threads 🌼 | ¼ tsp | High-quality, crushed |
| Chicken Broth 💧 | 2 cups | Low-sodium preferred |
| Olive Oil 🫒 | 2 tbsp | Extra-virgin for richness |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly ground preferred |
| Bay Leaves 🍃 | 2 whole | Dried, crushed |
| Cumin 🌿 | ½ tsp | Ground, toasted |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
The ground beef is the flavor anchor here. 80/20 fat ratio gives the best texture and juiciness—don't skimp on quality. I always grab mine from Costco or the butcher section at Whole Foods for that rich marbling. The rice? Medium-grain white is key—long-grain stays too firm. For the tomatoes, San Marzano cans make all the difference, but any quality crushed tomatoes work. Look for bright red color and no added salt. The saffron? Spanish saffron is best, but any high-quality threads will do—just be sure to crush them first for maximum flavor.
No saffron? Turmeric at half the amount gives color but lacks the floral aroma. Fresh bell peppers are ideal, but frozen diced peppers work in a pinch (thaw and drain first). The cumin can be swapped for smoked paprika at double the amount for a different but delicious twist. Short on chicken broth? Beef broth works too, just reduce the salt. The cilantro is purely for garnish—skip it if you're not a fan, but I always add it because it brightens up the dish. For the sofrito base, don't rush the cooking—let those onions and peppers soften for 5-7 minutes before adding the beef.
This reheats beautifully—just add a splash of water or broth to keep it moist. Keeps 4-5 days in the fridge, freezes for 3 months if portioned properly. I double the recipe and freeze half for lazy weeknights. The crust at the bottom? That's the good stuff—scrape it up and eat it with a spoon. For extra flavor, let the rice sit covered for 10 minutes after cooking before serving.
Why You'll Love This Recipe
- One-Pot Magic: The rice, beef, and veggies all cook together—no fussing with separate pans or timers. Just brown the meat, dump in everything else, and let it simmer. My kitchen stays cleaner, and I spend less time scrubbing.
- Deep, Savory Layers: That canned tomato base? It’s the secret—sweet, tangy, and slightly smoky when it reduces. Add the bell pepper and onion, and suddenly you’ve got a dish that tastes like it’s been simmering for hours, not 30 minutes.
- Weeknight Workhorse: I make this for busy nights, potlucks, or when friends drop by unannounced. It’s hearty enough for a main but simple enough to pair with anything—tortillas, a side salad, or even just extra rice for seconds.
- Budget-Friendly Staple: Ground beef and rice stretch across meals, and canned tomatoes cut costs without sacrificing flavor. I’ve fed a family of four for under $10, and the leftovers? Even better the next day, if that’s possible.
Step-by-step instructions for sofrito-infused Spanish rice
Here's how to build rich, aromatic Spanish rice with tender ground beef in one flavorful pan.
🍳 Step 1: Brown the Ground Beef Perfectly
Heat the 2 tablespoons olive oil in a large skillet over medium-high heat until shimmering. Add the 1.5 pounds ground beef, breaking it up with a wooden spoon as it cooks. Let it brown undisturbed for 3-4 minutes until the meat loses its raw color and starts forming crispy edges.
Here's the thing—don't rush this step. You want deep, caramelized flavor from the beef. Once it's browned, drain all but 2 tablespoons of the rendered fat (you'll need it later), then add the diced yellow onion and diced green bell pepper. Cook for 5 minutes until softened but still vibrant in color.
👨🍳 Step 2: Build the Sofrito Base
Add the 4 minced garlic cloves and cook for 30 seconds until fragrant—don't let them burn, or they'll turn bitter. Stir in the 1 can crushed tomatoes, 0.5 teaspoon cumin, 0.5 teaspoon ground black pepper, 1.5 teaspoons salt, and 2 crushed bay leaves. Let this mixture simmer together for 5 minutes until the tomatoes break down and thicken slightly.
This is where all the magic happens. The tomatoes release their acidity, which tenderizes the rice later. The spices and aromatics meld into a fragrant sofrito that forms the foundation of your dish. Keep the heat at medium-low to prevent burning.
🥘 Step 3: Toast the Rice for Perfect Texture
Add the 2 cups long-grain white rice and stir vigorously for 1 minute to coat every grain with the sofrito mixture. This step is crucial—it prevents gummy rice by creating a protective barrier. Then pour in the 2 cups chicken broth and sprinkle the 0.25 teaspoon crushed saffron threads directly on top.
Here's my secret: The saffron needs to steep in the hot liquid, so don't stir it in right away. Cover the skillet with a tight-fitting lid and reduce heat to low. Let it cook undisturbed for 15 minutes—this allows the rice to absorb liquid evenly without sticking.
⏰ Step 4: Steam to Fluffy Perfection
After 15 minutes, give the rice a gentle stir to check for doneness. If the liquid has been absorbed, add ½ cup hot chicken broth at a time until the rice is tender but still slightly firm to the bite (about 20-25 minutes total). The rice should be cooked through but not mushy—you want each grain to be distinct.
If you peek and see liquid still remaining after 20 minutes, resist the urge to add more broth. The rice will continue cooking from residual heat. Instead, let it steam for another 5 minutes uncovered to develop that perfect crust at the bottom.
🍽️ Step 5: Finish and Garnish Like a Pro
Remove from heat and let the rice sit covered for 5 minutes. This resting period allows any remaining steam to finish cooking the rice evenly. Fluff gently with a fork, then stir in the 0.25 cup chopped fresh cilantro. The bright herb cuts through the richness of the beef and tomatoes.
Serve immediately with the crispy beef mixture spooned on top. Each bite should deliver tender rice with pockets of juicy beef, vibrant bell pepper, and that unmistakable saffron aroma. The secret to this dish is patience—letting the flavors meld and the rice cook just right.
Pro Tips For Making Old Fashioned Spanish Rice Recipe With Ground Beef
- CRISP THE ONIONS FIRST: Sauté the diced onion in oil until deep golden—almost caramelized—before adding the bell pepper. I learned this the hard way: skipping this step means your rice will taste dull, no matter how much garlic or cumin you throw in later. The extra 3-4 minutes upfront makes a real difference when the dish simmers.
- BROWN THE BEEF WELL: Don’t just cook the ground beef—get it deep brown with a crust in spots. Use a wooden spoon to break it up only at the end, and resist the urge to stir constantly. That crust packs flavor, and undercooked beef just tastes like grease no matter how much tomato sauce you add.
- RINSE THE RICE TWICE: Give that long-grain rice a quick rinse in a fine-mesh strainer before cooking—twice, even if it feels excessive. I used to skip this, and my rice always turned out gummy. The starch rinse-off guarantees each grain stays separate and fluffy, no matter how much liquid you add.
- SIMMER COVERED, LOW AND SLOW: Once the rice hits the pot, drop the heat to a bare simmer, cover tightly, and walk away for 15 minutes. I know, I know—you’re tempted to peek. But every time I lift the lid early, the rice dries out or gets uneven. Let it steam undisturbed, then check for doneness.
Dietary considerations for these flavors
Gluten-Free Adaptation
This Spanish rice is naturally gluten-free, but always double-check your ingredients—especially the broth, saffron, and spices. I use Annie's Cheddar Free Chicken Broth for a reliable gluten-free option. The rice itself is safe, but if you're making a full meal, pair it with gluten-free tortillas or a side salad.
The dish maintains its rich flavors without any substitutions needed. 🌱
Low-Carb/Keto Version
For a lower-carb option, replace the rice with cauliflower rice (about 4 cups fresh or frozen). Cook it in the same sofrito mixture, but reduce the broth to 1 cup since cauliflower releases more moisture.
The texture will be slightly different but still packed with flavor. I've tested this version and it holds up beautifully—just don't expect the same chewy texture as traditional rice. 🥦
Vegetarian Option
Swap the ground beef for crumbled tempeh or mushrooms (like shiitake or cremini) for a meaty texture. Sauté the tempeh until crispy before adding the sofrito ingredients. For extra umami, add 1 teaspoon soy sauce to the tomato mixture.
The dish loses some richness but still delivers bold flavors. I've made this version for veggie-loving friends and they never miss the meat! 🌿
Protein Swaps
Need a different protein? Try chicken thighs (cut into small pieces) or ground turkey for a lighter option. For seafood lovers, shrimp works beautifully—sauté it until pink and add it in the last 5 minutes of cooking.
Each protein changes the flavor profile slightly, but the rice base remains the star. I've experimented with all of these and they all turn out delicious! 🦐
Allergen-Friendly Tips
For nut allergies, this recipe is already safe—just avoid cross-contamination if you're cooking other nut-based dishes. If you're sensitive to cilantro, skip it or substitute with fresh parsley. For dairy-free diets, no changes are needed unless you're using a specific brand of broth with dairy additives (always check labels).
The dish is inherently flexible for most common allergens. 💡
Meal Prep Adjustments
When prepping for multiple servings, divide the cooked rice into airtight containers with a layer of beef mixture on top. Reheat portions separately to maintain texture—microwave the rice for 2-3 minutes and the beef for 1-2 minutes.
For freezer storage, portion into quart-sized bags and thaw overnight in the fridge before reheating. The flavors actually improve after a day or two in the fridge! ❄️
Nutrition facts
Frequently asked questions
Why does this Spanish rice recipe need saffron?
The saffron adds that signature golden color and delicate floral aroma that makes this dish special. It's what gives traditional Spanish rice its luxurious feel—just 0.25 teaspoon makes a huge difference! Without it, you can use turmeric for color, but it won't have the same complex flavor.
Can I make this recipe without fresh sofrito ingredients?
Use 1 tablespoon store-bought sofrito (the canned kind) instead of fresh onions, peppers, and garlic. Just add it with the tomatoes and spices. For extra flavor, toast the sofrito in the pan for 2 minutes first to deepen its aroma. The texture will be slightly different but still delicious.
What's the secret to getting the crust at the bottom?
Let the rice cook uncovered for the last 5 minutes on low heat. This allows the liquid to evaporate and creates that crispy, flavorful crust. Don't stir it—just let it form! If it browns too quickly, reduce the heat slightly. That crust is packed with all the beefy, tomatoey goodness.
How do I prevent the rice from getting mushy?
Stir the rice vigorously for 1 minute after adding it to the pan to coat the grains in the sofrito mixture. This creates a protective barrier. Also, use low heat after covering and avoid peeking too often. The rice needs to steam evenly—resist the urge to stir until the 15-minute mark.
Can I make this in a slow cooker?
Yes! Brown the beef and sofrito in a skillet first, then transfer everything to the slow cooker. Add the rice and broth, cover, and cook on low for 2-3 hours. The texture will be softer but still flavorful. For best results, stir once halfway through cooking. This method is great for hands-off prep!
