Traditional Italian Meatballs

Finding a crowd-pleasing dinner recipe that works for both weeknight meals and special occasions can feel like an impossible task. After all, you want something that tastes homemade and comforting, but you don’t always have hours to spend in the kitchen, and it gets even trickier when you’re trying to please picky eaters at the table.

Thankfully, these Italian meatballs check all the boxes: they’re flavorful yet simple to make, perfect for pairing with pasta or serving as appetizers, and easy to customize with the herbs and seasonings you already have in your pantry.

Italian Meatballs
Image: alrightwithme.com / All Rights reserved
SAVE NOW

Why You’ll Love These Italian Meatballs

  • Authentic Italian flavor – Made with a blend of ground beef and pork plus ricotta cheese, these meatballs taste just like the ones from your favorite Italian restaurant.
  • Incredibly tender and moist – The secret is soaking bread in milk before mixing it into the meat, which keeps every meatball juicy and prevents them from drying out.
  • Homemade tomato sauce included – This recipe walks you through making your own fresh tomato sauce with simple vegetables and herbs, though you can use store-bought if you’re short on time.
  • Perfect for meal prep – Make a big batch and freeze half for later. These meatballs reheat beautifully and taste even better the next day.
  • Versatile serving options – Serve them over spaghetti for a classic dinner, pile them into sub sandwiches, or enjoy them on their own as an appetizer.

What Kind of Ground Meat Should I Use?

This recipe calls for a combination of ground beef and ground pork, which is pretty traditional for Italian meatballs. For the beef, look for something with at least 16 percent fat – leaner meat will give you dry, tough meatballs that nobody wants. Ground chuck (80/20) is a solid choice that’s easy to find at most grocery stores. As for the pork, regular ground pork from the meat counter works perfectly fine, and it adds moisture and a slightly sweet flavor that balances out the beef. If you can only find one type of meat, you can use all beef or all pork, though the flavor will be a bit different from the classic version.

Italian Meatballs
Image: alrightwithme.com / All Rights reserved
SAVE NOW

Options for Substitutions

This classic recipe has some room for flexibility, though a few ingredients really shouldn’t be swapped:

  • Ground meat combination: The beef and pork combo gives these meatballs their signature flavor and texture, but you can adjust the ratio if needed. Try all beef if you don’t eat pork, or add ground veal for a more traditional Italian approach. Just keep the total at 2 pounds.
  • White bread and milk: This panade (bread soaked in milk) is what keeps meatballs tender, so don’t skip it. However, you can use any soft bread you have – Italian, French, or even sandwich bread works fine. The milk can be swapped with half-and-half or even chicken broth if needed.
  • Ricotta cheese: If you’re out of ricotta, you can use cottage cheese (drained well) or even cream cheese in the same amount. Some cooks skip it entirely and just add an extra egg for moisture.
  • Parmesan or Romano cheese: These hard Italian cheeses are pretty important for authentic flavor, but if you only have one or the other, just use what you’ve got. Pecorino Romano is a bit saltier, so adjust your salt accordingly.
  • Fresh herbs: Fresh parsley adds brightness, but dried parsley (use 1 tablespoon) works in a pinch. Same goes for the basil in the sauce – just remember that dried herbs are more concentrated, so use about a third of the amount.
  • Canned tomatoes: Whole or crushed tomatoes both work great. If using whole, just break them up with your hands or a spoon as they cook. Fresh tomatoes are lovely when in season, but canned actually gives more consistent results year-round.

Watch Out for These Mistakes While Cooking

The biggest mistake when making meatballs is overworking the meat mixture, which creates dense, tough meatballs instead of tender ones – mix just until the ingredients are combined and handle the meat gently when shaping.

Don’t skip soaking the bread in milk, as this panade keeps your meatballs moist and prevents them from drying out during cooking.

Another common error is making the meatballs too large, which leads to uneven cooking with burnt outsides and raw centers – aim for golf ball size (about 2 inches) for the best results.

When browning, resist the urge to move them around too much in the pan, as this prevents a good crust from forming and can cause them to fall apart.

Italian Meatballs
Image: alrightwithme.com / All Rights reserved
SAVE NOW

What to Serve With Italian Meatballs?

Italian meatballs are perfect over a big bowl of spaghetti or your favorite pasta shape like rigatoni or penne, which does a great job catching all that tomato sauce. If you’re not in the mood for pasta, these meatballs are also amazing tucked into a crusty sub roll with melted mozzarella for meatball sandwiches. A simple side salad with Italian dressing and some garlic bread on the side rounds out the meal nicely, giving you something fresh to balance out the richness of the meatballs. You could also serve them over creamy polenta or mashed potatoes if you want to switch things up from the usual pasta.

Storage Instructions

Store: These meatballs keep really well in the fridge for up to 4 days. Store them in an airtight container with the sauce to keep them moist and flavorful. They actually taste even better the next day once all those Italian flavors have had time to meld together!

Freeze: Italian meatballs are perfect for freezing. You can freeze them with or without the sauce for up to 3 months. I like to freeze them on a baking sheet first, then transfer to a freezer bag so they don’t stick together. That way you can grab just what you need for dinner.

Reheat: Warm the meatballs gently on the stovetop in their sauce over medium-low heat, stirring occasionally until heated through. If you’re reheating from frozen, let them thaw in the fridge overnight first for best results. You can also microwave them, but the stovetop method keeps them more tender.

Preparation Time 20-30 minutes
Cooking Time 45-60 minutes
Total Time 65-90 minutes
Level of Difficulty Medium

Estimated Nutrition

Estimated nutrition for the whole recipe (without optional ingredients):

  • Calories: 3250-3550
  • Protein: 175-195 g
  • Fat: 210-230 g
  • Carbohydrates: 140-160 g

Ingredients

For the sauce:

  • 3/4 cup finely chopped onions
  • ground black pepper to taste
  • 3/4 cup finely chopped celery
  • 1 tsp tomato paste
  • 2 tbsp extra virgin olive oil
  • 1 garlic clove, minced
  • 2 tbsp chopped fresh parsley
  • 1 can (28 oz) crushed or whole tomatoes (I use San Marzano)
  • 3/4 cup finely chopped carrots
  • salt to taste
  • 1/2 tsp dried basil

For the meatballs:

  • 1 tsp dried oregano or marjoram
  • 2/3 cup milk (whole or 2 percent, room temperature)
  • 1 lb ground pork
  • 1 tbsp chopped fresh parsley
  • 1 lb ground beef
  • 1/4 cup grated Parmesan or Romano cheese
  • 3 garlic cloves, minced
  • 2 large eggs (room temperature)
  • 3 slices white bread, crusts removed
  • 1 tsp salt
  • 1/4 cup ricotta cheese (room temperature)
  • 2 tsp black pepper (freshly ground preferred)

For cooking:

  • 1 cup flour, for dusting
  • 1/3 cup extra virgin olive oil (I prefer Kerrygold for this)

For serving:

  • 2 1/2 cups prepared tomato sauce

Step 1: Prepare the Tomato Sauce Base

  • 2 tbsp extra virgin olive oil
  • 3/4 cup finely chopped onions
  • 3/4 cup finely chopped carrots
  • 3/4 cup finely chopped celery
  • 2 tbsp chopped fresh parsley
  • 1 garlic clove, minced
  • 1 can (28 oz) crushed or whole tomatoes (I use San Marzano)
  • 1 tsp tomato paste
  • 1/2 tsp dried basil
  • salt to taste
  • ground black pepper to taste

Heat 2 tablespoons of extra virgin olive oil in a large skillet over medium heat.

Add the finely chopped onions, carrots, celery, and 2 tablespoons chopped fresh parsley, stirring to coat with oil.

Reduce the heat to low, cover the skillet, and cook until the vegetables are soft, about 15 to 20 minutes.

Remove the cover, add 1 minced garlic clove, then increase the heat to medium-high and cook for 30 seconds.

Stir in the canned tomatoes (breaking them up if using whole), tomato paste, dried basil, and season with salt and black pepper.

Bring the mixture to a gentle simmer, then reduce the heat to low and cook uncovered until the sauce thickens, about 15 to 30 minutes.

If a smoother texture is desired, purée the sauce in a blender or use a food mill.

Return the sauce to the skillet and adjust seasoning, if needed.

I like tasting at this stage and adjusting the salt or adding a pinch more basil for a brighter flavor.

Step 2: Soak the Bread for Meatballs

  • 2/3 cup milk (whole or 2 percent, room temperature)
  • 3 slices white bread, crusts removed

Heat the milk in a small pot until it becomes steamy, then remove from the heat.

Tear the slices of white bread into small pieces and add them to the warm milk, allowing the bread to soak until it starts to dissolve.

Mash the mixture with a fork until it forms a loose paste, then turn it out onto a plate to cool.

This step makes the meatballs wonderfully tender.

Step 3: Mix and Shape the Meatballs

  • 1 lb ground beef
  • 1 lb ground pork
  • 1/4 cup ricotta cheese (room temperature)
  • 1/4 cup grated Parmesan or Romano cheese
  • 2 large eggs (room temperature)
  • 3 garlic cloves, minced
  • 1 tbsp chopped fresh parsley
  • 1 tsp dried oregano or marjoram
  • 1 tsp salt
  • 2 tsp black pepper (freshly ground preferred)
  • bread-milk mixture from Step 2
  • 1 cup flour, for dusting

In a large bowl, combine the ground beef, ground pork, ricotta cheese, grated Parmesan or Romano cheese, eggs, 3 minced garlic cloves, 1 tablespoon chopped fresh parsley, dried oregano or marjoram, 1 teaspoon salt, freshly ground black pepper, and the bread-milk mixture from Step 2.

Gently mix everything by hand until just combined, being careful not to overwork the mixture.

Wet your hands and form the mixture into meatballs about 2 to 3 inches across (or preferred size).

Roll each meatball in flour for a light coating and set on a baking sheet.

You may need to rinse and re-wet your hands a few times during this process.

I find that handling the mixture as little as possible keeps the meatballs extra tender.

Step 4: Brown the Meatballs

  • 1/3 cup extra virgin olive oil (I prefer Kerrygold for this)
  • formed and floured meatballs from Step 3

Heat 1/3 cup extra virgin olive oil in a large skillet over medium-high heat.

Working in batches if necessary, brown the formed and floured meatballs from Step 3 on at least two sides.

Do not worry if the meatballs are not cooked through, as they will finish cooking in the sauce.

Remove the browned meatballs and set aside while you finish the rest.

For the best flavor, I like to let the meatballs get a rich golden crust on the outside during this step.

Step 5: Simmer Meatballs in the Sauce and Garnish

  • browned meatballs from Step 4
  • thickened tomato sauce from Step 1
  • 2 1/2 cups prepared tomato sauce (optional, if using for extra sauce)
  • 1 tbsp chopped fresh parsley (for garnish, optional)

Transfer the browned meatballs from Step 4 into the thickened tomato sauce from Step 1, turning each meatball to coat it well in the sauce.

Cover the pot and simmer gently for 15 to 20 minutes, allowing the meatballs to cook through and absorb the sauce’s flavors.

Serve hot, optionally garnished with a sprinkle of chopped parsley and extra sauce over pasta or with crusty bread.

I like to finish the dish with a few more shavings of Parmesan for extra richness.

Italian Meatballs

Traditional Italian Meatballs

Delicious Traditional Italian Meatballs recipe with step-by-step instructions.
Prep Time 25 minutes
Cook Time 52 minutes
Total Time 1 hour 17 minutes
Servings 4
Calories 3400 kcal

Ingredients
  

For the sauce:

  • 3/4 cup finely chopped onions
  • ground black pepper to taste
  • 3/4 cup finely chopped celery
  • 1 tsp tomato paste
  • 2 tbsp extra virgin olive oil
  • 1 garlic clove, minced
  • 2 tbsp chopped fresh parsley
  • 1 can (28 oz) crushed or whole tomatoes (I use San Marzano)
  • 3/4 cup finely chopped carrots
  • salt to taste
  • 1/2 tsp dried basil

For the meatballs:

  • 1 tsp dried oregano or marjoram
  • 2/3 cup milk (whole or 2 percent, room temperature)
  • 1 lb ground pork
  • 1 tbsp chopped fresh parsley
  • 1 lb ground beef
  • 1/4 cup grated Parmesan or Romano cheese
  • 3 garlic cloves, minced
  • 2 large eggs (room temperature)
  • 3 slices white bread, crusts removed
  • 1 tsp salt
  • 1/4 cup ricotta cheese (room temperature)
  • 2 tsp black pepper (freshly ground preferred)

For cooking:

  • 1 cup flour, for dusting
  • 1/3 cup extra virgin olive oil (I prefer Kerrygold for this)

For serving:

  • 2 1/2 cups prepared tomato sauce

Instructions
 

  • Heat 2 tablespoons of extra virgin olive oil in a large skillet over medium heat. Add the finely chopped onions, carrots, celery, and 2 tablespoons chopped fresh parsley, stirring to coat with oil. Reduce the heat to low, cover the skillet, and cook until the vegetables are soft, about 15 to 20 minutes. Remove the cover, add 1 minced garlic clove, then increase the heat to medium-high and cook for 30 seconds. Stir in the canned tomatoes (breaking them up if using whole), tomato paste, dried basil, and season with salt and black pepper. Bring the mixture to a gentle simmer, then reduce the heat to low and cook uncovered until the sauce thickens, about 15 to 30 minutes. If a smoother texture is desired, purée the sauce in a blender or use a food mill. Return the sauce to the skillet and adjust seasoning, if needed. I like tasting at this stage and adjusting the salt or adding a pinch more basil for a brighter flavor.
  • Heat the milk in a small pot until it becomes steamy, then remove from the heat. Tear the slices of white bread into small pieces and add them to the warm milk, allowing the bread to soak until it starts to dissolve. Mash the mixture with a fork until it forms a loose paste, then turn it out onto a plate to cool. This step makes the meatballs wonderfully tender.
  • In a large bowl, combine the ground beef, ground pork, ricotta cheese, grated Parmesan or Romano cheese, eggs, 3 minced garlic cloves, 1 tablespoon chopped fresh parsley, dried oregano or marjoram, 1 teaspoon salt, freshly ground black pepper, and the bread-milk mixture from Step 2. Gently mix everything by hand until just combined, being careful not to overwork the mixture. Wet your hands and form the mixture into meatballs about 2 to 3 inches across (or preferred size). Roll each meatball in flour for a light coating and set on a baking sheet. You may need to rinse and re-wet your hands a few times during this process. I find that handling the mixture as little as possible keeps the meatballs extra tender.
  • Heat 1/3 cup extra virgin olive oil in a large skillet over medium-high heat. Working in batches if necessary, brown the formed and floured meatballs from Step 3 on at least two sides. Do not worry if the meatballs are not cooked through, as they will finish cooking in the sauce. Remove the browned meatballs and set aside while you finish the rest. For the best flavor, I like to let the meatballs get a rich golden crust on the outside during this step.
  • Transfer the browned meatballs from Step 4 into the thickened tomato sauce from Step 1, turning each meatball to coat it well in the sauce. Cover the pot and simmer gently for 15 to 20 minutes, allowing the meatballs to cook through and absorb the sauce’s flavors. Serve hot, optionally garnished with a sprinkle of chopped parsley and extra sauce over pasta or with crusty bread. I like to finish the dish with a few more shavings of Parmesan for extra richness.

Disclaimer

Our editors have used AI to create or enhance parts of this article. All content has been fact-checked by our team to ensure accuracy.

Leave a Comment

Recipe Rating




Add Photo
(optional)
Images must be:
  • PNG, GIF, JPEGs, WEBP only
  • Minimum 960x960
  • Max size: 30MB
Share a photo of your cooked dish!

×
Pinterest Logo
Follow me on Pinterest for FREE Daily Recipes!
Follow on Pinterest
Recipe

📸 Do you have a photo of your dish?

Help others see how your recipe turned out!