There’s nothing quite like a warm bowl of homemade soup on a chilly day. This hearty meatball and cabbage soup combines juicy, flavorful meatballs with tender cabbage and vegetables in a rich tomato-based broth. It’s satisfying, easy to make, and perfect for cozy nights or make-ahead meals.
For the Meatballs:
1 lb ground beef (or a mix of beef and pork)
1/3 cup breadcrumbs
1 egg
2 garlic cloves, minced
1 tbsp chopped fresh parsley (or 1 tsp dried)
1 tsp salt
1/2 tsp black pepper
1/4 tsp crushed red pepper flakes (optional)
For the Soup:
1 tbsp olive oil
1 medium onion, diced
2 carrots, peeled and sliced
2 celery stalks, sliced
3 garlic cloves, minced
1/2 head green cabbage, chopped (about 4 cups)
1 (14.5 oz) can diced tomatoes
6 cups beef or chicken broth
1 tsp dried thyme
1 tsp paprika
Salt and pepper to taste
1 bay leaf
Fresh dill or parsley, for garnish (optional)
In a large bowl, combine ground beef, breadcrumbs, egg, garlic, parsley, salt, pepper, and red pepper flakes if using. Mix gently until just combined. Form into 1-inch meatballs (about 20–24 pieces).
In a large soup pot or Dutch oven, heat olive oil over medium heat. Add meatballs in batches and brown on all sides. Remove and set aside.
In the same pot, add more oil if needed. Sauté onion, carrots, and celery until softened (about 5 minutes). Add garlic and cook another minute.
Add cabbage and stir. Pour in diced tomatoes (with juice), broth, thyme, paprika, bay leaf, and season with salt and pepper. Bring to a boil.
Reduce heat to medium-low. Simmer for 10 minutes. Add browned meatballs to the pot. Continue simmering for 20–25 minutes until meatballs are fully cooked and cabbage is tender.
Taste and adjust seasoning. Remove bay leaf before serving. Garnish with fresh dill or parsley if desired.
Browning the meatballs adds extra flavor but can be skipped to save time.
Use ground turkey or chicken for a lighter version.
Add potatoes, rice, or barley to make the soup even heartier.
This soup freezes well and tastes even better the next day.