Disclosure: As an Amazon Associate I earn from qualifying purchases. Some links in this post are affiliate links, meaning I may earn a small commission at no extra cost to you.
Sopa Criolla was one of the soups I always asked my grandmother Ismelda for seconds. Not because it was fancy or a special occasion dish. Because it filled me up.
Growing up in Lima, my abuela had a rotation of soups. Some were light, mostly broth with a few things floating in it. But Sopa Criolla was different. It had meat, it had noodles, it had milk that made the broth creamy, and it came with a fried egg on top and bread on the side. For a kid, that was not just soup. That was a meal. It warmed me up on the cold Lima days, which honestly are not that cold compared to what I deal with now in New York, but back then it felt cold enough.
I would finish the bowl and my only worry in the world was whether I could have more, then go play with my cousins and catch my favorite cartoons. That was it. That was the whole day.
I do not make this dish as often as I should. My family does not eat a lot of soups at home, and life moves fast. But lately I have been trying to cook these childhood dishes more often. Not out of nostalgia exactly, more like reminding myself where I started.
Sopa Criolla is a Peruvian beef noodle soup built on a base of ground beef, ají panca, garlic, onion, and tomato, finished with evaporated milk that gives the broth its creamy body. It is served with a fried egg on top and bread or croutons on the side. The egg is not optional. It is part of the dish.
It is everyday food in Lima, the kind of soup that shows up on a Tuesday when the weather turns and you need something that sticks. The broth is savory and slightly smoky from the ají panca, with a richness from the milk that makes it feel more substantial than the ingredient list suggests.
If you have heard of Sopa a la Minuta, you might be wondering if they are the same thing. They share almost the same base, beef, ají panca, onion, garlic, tomato, and angel hair noodles, and even Peruvian chefs debate whether they are the same soup or two distinct ones. The clearest distinction: Sopa Criolla has evaporated milk in the broth, a fried egg on top, and bread on the side. That combination is what we are making here.
The main ingredient that defines this soup and is the hardest to find in a standard US grocery store is ají panca paste.
Ají panca is a dried Peruvian pepper with a deep smoky flavor and very little heat. It is what gives the broth its color and its character. The paste version is what I use because it is consistent and convenient. Without it the soup becomes a generic beef noodle soup. (Amazon link for ají panca paste)
Evaporated milk is easier to find, most large grocery stores carry it in the canned goods aisle. Do not substitute regular milk or cream. Evaporated milk has a specific concentrated flavor and consistency that holds up in the hot broth without breaking.
Brown the beef properly before adding anything else: Let it cook undisturbed for a couple of minutes so it develops color. That fond on the bottom of the pot is flavor. Do not rush past it.
Cook the sofrito low and slow: After the meat, the onion, garlic, tomato, tomato paste, and ají panca need time to cook down into a proper base. Five minutes minimum. That is where the depth of the broth comes from.
Add the angel hair last and watch it closely: Angel hair cooks in two to three minutes and turns to mush fast. Add it when the broth is at a full boil, set a timer, and pull the pot off the heat the moment the pasta is done.
Add the evaporated milk off the heat or at very low heat: High heat can cause the milk to separate and curdle. Stir it in gently at the end once you have reduced the flame.
Fry the egg fresh for each bowl: The egg goes on top right before serving. A runny yolk that breaks into the broth when you eat it is part of the experience. Do not skip it.
Bread is traditional and correct. A thick slice on the side for soaking up the broth is how it has always been served. Croutons work as a lighter option.
The fried egg on top is not garnish. It is structural. It adds richness and protein and changes the texture of the soup as the yolk runs. Serve it immediately after frying so the yolk stays runny.
Steps are really straight forward, nothing complicated, just make sure to take your time to do it right.
Store the soup base separately from any leftover noodles if possible. Angel hair continues to absorb liquid in the refrigerator and will become soft and swollen by the next day. If storing together, add a splash of beef stock when reheating to loosen the broth back up. Keeps refrigerated for up to 3 days. Fry a fresh egg each time you serve it.
What is the difference between Sopa Criolla and Sopa a la Minuta?
They are closely related and the debate between them is ongoing even among Peruvian cooks. The most consistent distinction is that Sopa Criolla includes evaporated milk in the broth and is served with a fried egg and bread. Sopa a la Minuta is leaner, without the milk, and sometimes uses a different cut of beef. If you grew up in Lima you probably have a strong opinion about which one your family made and what it was called.
Can I use a different pasta instead of angel hair?
Angel hair is traditional because it cooks fast and integrates into the broth without overwhelming it. Thin spaghetti or vermicelli work as substitutes. Avoid anything thick or short, the pasta should be part of the broth, not the main feature.
Can I use chicken instead of beef?
You can, but it becomes a different soup. Ground beef and ají panca together are what give Sopa Criolla its specific flavor profile. Chicken with the same base will taste good but will not taste like Sopa Criolla.
Is this soup spicy?
No. Ají panca is a mild pepper. Its contribution is smoky and savory rather than hot. If you want heat, add a small amount of ají amarillo paste alongside the ají panca.
What does evaporated milk do in the soup?
It adds a subtle creaminess and a slightly sweet, concentrated dairy flavor that regular milk cannot replicate. It also holds up to heat better than fresh milk without breaking or separating when done correctly.

If you make this, leave a comment and let me know if it reminded you of anything. And if you want to keep going with Peruvian soups, the Caldo de Gallina recipe is the other one my grandmother made on rotation.
Tried it? Let me know.
Leave a rating and a comment below — it helps other cooks find this recipe, and I read every single one.