Italian Meatball Soup

This Italian meatball soup is a cozy, feel good recipe built around tender beef meatballs and a simple but flavorful broth. The meatballs are seasoned with parmesan, garlic, herbs, and a splash of lemon juice, which gives them a bright, savory flavor that stands up well to the simmered vegetables. It is the kind of soup that feels special enough for guests but straightforward enough for a weeknight when you want something hearty in one pot.

The broth starts with beef stock, tomato paste, and a classic bouquet garni made from parsley, bay leaves, and whole peppercorns tied in cheesecloth. As it simmers with onion, carrot, celery, potato, and cabbage, the soup becomes rich and aromatic without feeling heavy. For tools, you will need a large mixing bowl, a heavy pot or Dutch oven, a cutting board, a chef knife, and cheesecloth for the herb bundle. Serve with extra parmesan and crusty Italian bread for dipping and you have a complete, comforting meal that also freezes well for later.

1. Mix the meatballsIn a large bowl, combine the ground beef, parmesan, chopped parsley, egg, garlic, salt, pepper, oregano, and lemon juice. Mix until everything is evenly combined without overworking the meat.Use a fork or your fingertips to mix gently so the meatballs stay tender instead of dense.Wash your hands and wipe down the mixing area after handling raw meat to keep things sanitary.
2. Shape and chill the meatballsShape the mixture into small balls about 1 inch wide and place them on a plate or tray. You should have about 24 meatballs. Chill for 30 minutes so they firm up before browning.Lightly oil your hands or use a small scoop for evenly sized meatballs.Cover the tray with plastic wrap while chilling to avoid any drips or spills in the fridge.
3. Brown the meatballsHeat the olive oil over medium low heat in a heavy pot. Working in batches if needed, briefly brown the meatballs on all sides. They should take about 2 minutes per batch and do not need to be cooked through. Transfer the browned meatballs to a plate.Turn the meatballs gently with tongs or a spoon so they hold their shape while browning.Leave the browned bits on the bottom of the pot. They will add flavor when you build the broth.
4. Build the soup baseTo the same pot, add the beef stock, water, salt, and tomato paste. Stir to dissolve the tomato paste and scrape the browned bits from the bottom of the pot. Bring to a boil, then reduce the heat and simmer for about 30 minutes.Use a wooden spoon to loosen the browned bits as the liquid heats up for extra depth of flavor.Wipe any splashes off the stovetop while the soup simmers to make final cleanup easier.
5. Add the herb bundleGather the parsley leaves, bay leaves, and peppercorns in a piece of cheesecloth. Tie it securely with kitchen twine to make a small bundle and add it to the pot.Double layer the cheesecloth so the peppercorns do not escape into the soup.Keep a small bowl nearby to hold the herb bundle when you remove it so it does not drip on the counter.
6. Add the vegetablesAdd the chopped onion, carrot, celery, and russet potato to the pot. Simmer for 15 minutes, then remove and discard the herb bundle.Cut the potatoes and vegetables into similar sized pieces so they cook evenly.Discard the herb bundle once it has cooled slightly so it does not leak in the trash.
7. Finish with cabbage and meatballsAdd the sliced cabbage and the browned meatballs to the pot. Bring the soup back to a gentle boil, then reduce the heat and simmer for 8 to 10 minutes until the cabbage is tender and the meatballs are cooked through.Avoid boiling the soup too vigorously at this stage so the meatballs stay tender and hold their shape.Skim any excess fat from the surface with a spoon and discard it in a heat safe container.
8. ServeLadle the soup into bowls, making sure each serving includes several meatballs and plenty of vegetables. Serve with plenty of freshly grated parmesan sprinkled over the top.Warm your bowls briefly with hot water before filling them so the soup stays hotter at the table.Let leftovers cool slightly before transferring to airtight containers for refrigeration or freezing.

ground beef3/4 lb

- meat

Parmesan Cheese1/2 cup

- Dairy

Fresh Parsley3 tbsp

- Produce

egg1 count

- dairy

Garlic2 clove

- Produce

Black Pepper1/2 tsp

- Spices

ground oregano1/4 tsp

- spices

Lemon Juice2 tsp

- Produce

Olive Oil3 tbsp

- Oil & Vinegar

low sodium beef stock7 cup

- broth

Water2 cup

- Beverages

Kosher salt1/2 tsp

- Spices

Tomato Paste2 tbsp

- Canned Goods

fresh parsley leaves1/4 cup

- Produce

bay leaves2 leaf

- Spices

black peppercorns1 tsp

- spices

Onion3/4 cup

- Produce

Carrot3/4 cup

- Produce

Celery3/4 cup

- Produce

russet potato1 cup

- produce

Green Cabbage1/2 lb

- Produce

Also try...

Frosted Brownies

Frosted Brownies
NEW

These easy frosted brownies are rich, chewy, and topped with a quick cocoa honey frosting made while the brownies bake. A simple one-pan dessert perfect for beginners, family treats, and classic chocolate lovers.

Instant Pot Beef Stroganoff

Instant Pot Beef Stroganoff
NEW

This easy Instant Pot Beef Stroganoff is a creamy, comforting one-pot dinner made with tender beef, mushrooms, and egg noodles. Ready in about 40 minutes, it is perfect for busy weeknights and minimal cleanup meals.

Grilled Pork Skewers

Grilled Pork Skewers
NEW

Sweet soda, soy, garlic, and vinegar create a flavorful marinade that produces tender pork with deep caramelization, making these skewers a quick and satisfying grilling option.

woman in blue shirt sitting beside woman in black shirt
a man standing in front of a laptop while cooking
bunch of vegetables