Authentic Cuban Ropa Vieja Recipe from my Grandma
There are few dishes that feel more like home to me than Cuban ropa vieja. I am Cuban, and I grew up eating ropa vieja made by my mom and grandma. They slow-simmered and deeply seasoned the beef, then served it with white rice, sweet plantains, and black beans. Thinking of the smell alone brings back memories of family.
This ropa vieja recipe is the one my mom and grandma taught me, and that we have cooked together so many times.
How to Make Ropa Vieja
Ingredients
Beef: We usually go with flank steak since it gets nice and tender and shreds really easily. Brisket also works, though it’s not my first choice; it brings a richer, fattier flavor that melts into the sauce as it cooks.
Onions or green onions: Onions are key in most beef dishes, especially in ropa vieja. I love onions in this dish, so the more the merrier.
Bell peppers (typically green, red, & yellow): We use a combination of green, yellow, and red bell peppers. The peppers are washed, and the seeds are removed before cooking. We sometimes swap the green bell pepper for a poblano, and we love the flavor it adds.
Garlic: It is another non-negotiable in Cuban cooking, adding bold, aromatic depth.
Tomato paste and/or tomato puree: My mom and grandma used to use a combination, and we have continued that tradition, but you don’t necessarily have to use both. You can use just tomato puree and still get the same great flavor.
Olive oil: Used to sauté the vegetables and build the foundation of the sauce.
Spices: Classic spices used in Cuban cuisine are cumin, oregano, and bay leaf. We also add paprika and black pepper tothis recipe.
Olives and capers: These are optional but traditional in many Cuban households. These briny ingredients add a pop of saltiness and complexity.
Beef broth or stock: We don’t use pre-made broth or stock; instead, we use the beef broth made when slow-cooking the beef. You can also add a bit of store-bought stock if needed.
Season and Sear the Beef
Generously season your flank steak with salt and black pepper on all sides.
Heat olive oil in a large Dutch oven, heavy-bottomed pot, or Instant Pot/pressure cooker over medium-high heat, then sear the beef until it develops a deep golden-brown crust on all sides.
Searing develops rich caramelized flavors that add incredible depth to the ropa vieja. Those browned bits left behind in the pot will eventually become part of the sauce.
Cook the Beef and Build the Broth
Once the beef is browned, remove it from the pot and set it aside.
Fill the pot with water and return the beef to the pot. Add a halved onion and bay leaves, which help infuse the meat and broth with classic Cuban flavor as they slowly cook together.
In recent years, my mom has started adding fresh parsley to the pot as well. While parsley wasn’t part of my grandmother’s recipe or of classic ropa vieja, it adds freshness and flavor to the broth.
Bring the liquid to a gentle boil, then reduce the heat and simmer until the meat is fork-tender and pulls apart easily. This cooking process can take time. If you are using a Dutch oven, I'd say 2 hours, then check, if more time is needed. We have always used an Instant Pot to save time, and it takes around 35 to 50 minutes, depending on the thickness of the meat.
Shred the Beef and Save the Beef Broth
Once the beef is fully cooked, carefully transfer it to a cutting board or large plate without discarding the broth. Let it cool. Using two forks or your hands, shred the meat into long, thin strands.
The beef should pull apart effortlessly. These tender shreds are what give ropa vieja its signature texture.
Before moving on to the sauce, strain and save the cooking liquid. This homemade beef broth is packed with flavor from the beef, onion, bay leaves, and parsley, and it is what we will use to complete the dish later.
Prepare the Cuban Sofrito
In the same pot, heat a little more olive oil if needed. Add sliced onions, bell peppers, smashed garlic, cumin, oregano, and paprika. Sauté everything until the vegetables become soft and fragrant.
Once the vegetables are tender, deglaze the pot with white cooking wine or dry white wine. Use a wooden spoon to scrape up any browned bits from the bottom of the pot, incorporating all of that flavor into the sauce.
Add the Tomato Puree
Add the tomato paste and purée to the sofrito, stirring until well combined. We use a combination of tomato paste and San Marzano tomato purée, which creates a richer, more balanced sauce with natural sweetness and less acidity.
Allow the tomato mixture to simmer for a few minutes so the flavors can meld together and the tomato paste can caramelize slightly.
Combine the Beef and Sauce
Return the shredded beef to the pot and pour in some of the homemade beef broth. Stir everything together until the beef is fully coated in the sauce.
At this point, some people like to add sliced olives and capers. My mom likes to add freshly chopped parsley or cilantro. Personally, I usually skip the olives and capers.
Simmer Until Rich and Flavorful
Let the ropa vieja simmer for about 30 minutes, until the sauce reduces slightly and intensifies in flavor. As it cooks, the shredded beef absorbs the sauce. If needed, add more broth around the 15-minute mark.
Taste and Adjust the Seasoning
Before serving, taste the ropa vieja and adjust the seasoning as needed.
Tips & Serving Suggestions
Ropa vieja is traditionally served over fluffy white rice. It is often paired with sweet fried plantains and black beans, creating the classic Cuban plate with savory, sweet, and wholesome flavors.
It also tastes even better the next day, once the flavors have had more time to deepen, something my grandma always said when I was growing up, and she was never wrong.

Ropa Vieja
Cuban ropa vieja recipe made with tender shredded flank steak simmered in a rich tomato sauce with onions, bell peppers, and Cuban spices.
Ingredients
- 2½-3 pounds flank steak
- 2 tsp salt
- 1 tsp black pepper
- 1 tbsp olive oil
- 1 onion, halved
- 2 bay leaves
- 1 bunch of fresh parsley
- Water, enough to cover the beef
- 2 tablespoons olive oil
- 1 large yellow onion, thinly sliced
- 1 green bell pepper, sliced
- 1 red bell pepper, sliced
- 4-5 garlic cloves, minced
- 1 tsp ground cumin
- 1 tsp dried oregano
- 1 tsp paprika
- ¼ cup dry white wine or cooking wine
- 1-2 tbsps tomato paste
- 1 (14-ounce) can San Marzano tomato purée
- 1-2 cups reserved beef broth
Instructions
- Season the flank steak with salt and pepper on all sides.
- Heat 1 tablespoon olive oil in a Dutch oven, large pot, or Instant Pot using the sauté function. Sear the beef for 4-5 minutes per side until deeply browned. Remove and set aside.
- Return the beef to the pot and cover with water. Add the halved onion, bay leaves, and parsley.
- For the Instant Pot, cook on High Pressure for 40-50 minutes, depending on the thickness of the meat, followed by a natural pressure release.
- For the stovetop method, bring to a boil, reduce heat, and simmer for 2-3 hours or until fork tender.
- Remove the beef and allow it to cool slightly.
- Shred using two forks or your hands, discarding any large pieces of fat.
- Strain and save the cooking broth. Discard the cooked onion, bay leaves, and parsley.
- Heat 2 tablespoons olive oil in the same pot Dutch oven or large pot.
- Add the sliced onion, bell peppers, and garlic. Cook for 6-8 minutes until softened.
- Stir in the cumin, oregano, and paprika and cook for 30 seconds until fragrant.
- Pour in the white wine and scrape up any browned bits from the bottom of the pot.
- Add the tomato paste and cook for 1 minute.
- Stir in the tomato purée and 1-2 cups of the reserved beef broth. Mix well and bring to a gentle simmer.
- Return the shredded beef to the sauce and stir until fully coated.
- Add the olives, capers, and fresh herbs if using.
- Simmer uncovered for 20-30 minutes, adding additional broth if needed, until the sauce thickens and the flavors meld together.
- Taste and adjust with additional salt and pepper.
- Serve hot over white rice with black beans.
Notes
- The homemade beef broth adds significantly more flavor than store-bought stock.
- Ropa vieja leftovers can be refrigerated for up to 5 days.
- Slow cooker method tip: Sear the beef first before adding it to the slow cooker. Add onion, bay leaves, parsley, and water, then cook on LOW for 6-8 hours or HIGH for 4-5. Once tender, shred the beef and transfer it to a pan, make the sofrito and sauce to finish cooking.
Nutrition Facts
Calories
385Fat
17 gSat. Fat
5 gCarbs
12 gFiber
3 gNet carbs
9 gSugar
5 gProtein
43 gSodium
1150 mgCholesterol
113 mgNutrition information is automatically calculated and should be used as an estimate. Use your own calculations when needed.

