Classic Italian Meatballs in Rich Tomato Sauce

My Italian meatballs are tender, moist, and full of savory flavor. I use torn fresh white bread soaked in milk rather than dry breadcrumbs; fresh bread absorbs more liquid and helps the meatballs become almost melt-in-your-mouth soft. They simmer gently in a thick, rich tomato sauce until perfectly cooked.

Italian meatball recipe in a pan with fresh basil leaves.

Ingredients for Italian Meatballs

What makes this Italian meatball recipe special is the balance of ground pork and beef. The pork contributes fat and juiciness, while the beef adds depth of flavor. Using fresh herbs and grated Parmigiano Reggiano brings classic Italian character to each bite.

Ingredients for Italian meatball recipe on the counter.

Meatball Ingredients

  • Ground pork and ground beef: equal parts; pork provides moisture, beef adds savory flavor.
  • Fresh white bread: torn and soaked in milk for a softer texture than dry breadcrumbs.
  • Whole milk: softens the bread and keeps the meatballs tender.
  • Eggs: bind the mixture so meatballs hold their shape.
  • Parmigiano Reggiano: finely grated for nutty, salty depth.
  • Fresh parsley and oregano: fresh oregano gives a bright, authentic note; dried oregano can be used instead.
  • Kosher salt and black pepper: for balanced seasoning.

Tomato Sauce Ingredients

  • Canned tomatoes: diced, crushed, or whole tomatoes with their juices all work well.
  • Olive oil: to sauté the onions and garlic and form the base of the sauce.
  • Onions and garlic: finely chopped for a savory foundation.
  • Baking soda: a small pinch helps mellow the tomatoes’ acidity for a rounder sauce.
  • Fresh basil: optional, added at the end for a sweet herbal lift.

Full ingredient quantities are listed in the recipe card later in the article.

If you enjoy this, try the classic Best Meatball Recipe for another variation.

Variations and Substitutions

Simple swaps let you adapt the recipe to dietary needs and preferences.

  • Baked meatballs: bake at 425°F for 18–20 minutes, then finish in the sauce if you prefer less frying.
  • Gluten-free: use gluten-free bread soaked in milk or gluten-free breadcrumbs.
  • Spicy: add red pepper flakes to the meat mixture and the sauce for heat.
  • Lean poultry: substitute ground turkey or chicken and add a little extra oil to keep them moist.
  • Mini meatballs: make smaller balls for appetizers or to tuck into baked pasta dishes.

Tools You’ll Need

Having the right equipment makes the process smoother.

  • Dutch oven: ideal for building and simmering the tomato sauce.
  • Large skillet: for browning the meatballs evenly.
  • Mixing bowl: to soak the bread and combine the meat.
  • Sheet pan: to rest the shaped meatballs before cooking.

How to Make Italian Meatballs

Prepare the sauce and the meat mixture simultaneously so everything comes together smoothly. The method below guides you through each step.

Italian Meatballs recipe steps.
1.
Italian Meatballs recipe steps.
2.
Italian Meatballs recipe steps.
3.
Italian Meatballs recipe steps.
4.
Italian Meatballs recipe steps.
5.
Italian Meatballs recipe steps.
6.
Browned meatballs simmering in the tomato sauce in a Dutch oven.
7.

Soak the bread

Combine torn bread and milk in a large bowl. Stir and let it sit while you prepare the onions and garlic—the bread will soften into a smooth paste that keeps the meatballs moist.

Cook the onions and garlic

Heat olive oil in a Dutch oven over medium heat. Sauté the onions for 6–8 minutes until soft, then add the garlic and cook another 1–2 minutes. Remove half of the onion/garlic mixture and stir it into the soaked bread; leave the rest in the pot to form the base of the tomato sauce.

Simmer the sauce

Add the tomatoes to the pot along with salt, a pinch of baking soda, and basil if using. Bring the sauce to a gentle simmer, partially covered. You can blend it for a smooth consistency or leave it chunky—keep the heat low while you finish the meatballs.

Mix and shape

Stir the eggs into the soaked bread, then add the pork, beef, grated Parmigiano, parsley, oregano, salt, and pepper. Mix gently by hand until just combined. Form 2-inch balls (about 24) and place them on a tray. Chilling them in the freezer for 5–10 minutes helps them hold their shape.

Brown the meatballs

Heat oil in a large skillet over medium heat. Brown the meatballs in batches, turning so they color on all sides—about 6–8 minutes per batch. Avoid crowding the pan to ensure a proper sear.

Simmer until tender

Transfer the browned meatballs to the sauce, stir gently to coat, partially cover, and simmer for about 20 minutes or until the internal temperature reaches 165ºF. Finish by tasting and adjusting salt as needed; a small splash of soy sauce can deepen the savory flavor, though it’s optional.

Finish and serve

Garnish with freshly grated Parmigiano and torn basil leaves. Serve over pasta, gnocchi, or with crusty bread to soak up the sauce.

Italian meatballs served with homemade garlic bread on the side.

Mistakes to Avoid With Homemade Meatballs

Common pitfalls to prevent so your meatballs turn out their best:

  1. Overmixing: handle the mixture gently; overworking the meat makes dense, tough meatballs.
  2. Skipping soaked bread: the milk-soaked bread is essential for soft, juicy texture.
  3. Crowding the pan: brown in batches so the meatballs sear instead of steam.
  4. Using only lean beef: include pork or another fatty meat for moisture and flavor.
  5. Boiling the sauce: keep it at a gentle simmer to preserve tenderness and a smooth texture.

How to Store and Freeze Meatballs

These meatballs hold up well, making them convenient for meal prep and leftovers.

Storing leftovers

  • Refrigerate: keep meatballs in the sauce in an airtight container for up to 4 days.
  • Keep them covered: the sauce helps preserve moisture and flavor.

Freezing

  • Freeze cooked: pack meatballs with sauce and freeze for up to 3 months.
  • Freeze raw: shape meatballs, flash-freeze on a tray, then transfer to a bag once solid.

Reheating

  • On the stove: warm gently in the sauce over low heat until hot throughout.
  • From frozen: thaw overnight in the refrigerator for best texture, then reheat slowly.
Italian meatball recipe in a pan with a spoon.

What to Serve with Italian Meatballs

Pair these meatballs with sides that complement the sauce and texture.

Over pasta

  • Spaghetti: a classic pairing—spoon sauce and meatballs over a nest of noodles.
  • Gnocchi: pillowy potato gnocchi hold the sauce beautifully for a comforting plate.
  • Baked pasta: fold meatballs into baked ziti or lasagna for a hearty casserole.

Sides and starters

  • Green salad: a crisp salad or a Caprese salad balances richness with freshness.
  • Bruschetta: an easy, flavorful starter that complements the meal.
  • Crusty bread: perfect for mopping up every last bit of sauce.

Tips for the Best Beef and Pork Meatballs

  • Use fresh bread: torn bread soaked in milk yields a tender, silky texture.
  • Balance the meats: half pork, half beef gives the right combination of moisture and flavor.
  • Chill briefly: cooling shaped meatballs helps them keep their shape while cooking.
  • Sear for flavor: browning builds a flavorful crust before simmering in sauce.
  • Low, slow simmer: gentle heat gives a rounder sauce and tender meatballs.

Frequently Asked Questions

Quick answers to common questions about making these meatballs.

What makes these meatballs Italian?

The mix of pork and beef, grated Parmigiano Reggiano, fresh herbs like parsley and oregano, and a simple tomato sauce with garlic and basil give these meatballs their classic Italian profile.

What is the best ratio of beef to pork?

Equal parts beef and pork—one pound each—is a reliable ratio. The pork contributes fat and juiciness while the beef provides a rich, meaty flavor.

Why use baking soda in the sauce?

A small pinch of baking soda can reduce the sharp acidity of canned tomatoes, making the sauce taste smoother and slightly sweeter without adding sugar.

Can I bake the meatballs instead of frying?

Yes. Baking at 425°F for 18–20 minutes is an easy alternative; finish the meatballs in the sauce to infuse flavor and keep them moist.

Can I use breadcrumbs instead of fresh bread?

Fine breadcrumbs can be used and should be soaked in milk the same way. Fresh bread generally yields a softer result, but good breadcrumbs are an acceptable substitute.

How do I keep meatballs from falling apart?

Mix gently and only until combined, chill the shaped meatballs briefly, and brown them fully before simmering in the sauce to help them hold together.

Can these be made ahead?

Yes. Shape the meatballs a day ahead and refrigerate, or freeze them raw or cooked. Cooked meatballs stored in sauce reheat well for convenient meals.

What should I serve with these meatballs?

Serve over spaghetti, gnocchi, or your favorite pasta with a green salad and crusty bread. They also work well in baked pasta dishes for feeding a crowd.

Other Italian Dinner Recipes You’ll Love

  • The Best Meatball Recipe
  • Baked Ziti with Ricotta
  • Easy Spaghetti with Ground Beef
  • Chicken Alfredo
  • Pizza Bowl
  • Recipes With Meat Sauce
Italian meatball recipe in a pan with a spoon.

Authentic Italian Meatballs (Melt in Your Mouth!)

Tender meatballs made with equal parts ground pork and beef, Parmigiano Reggiano, fresh oregano, and milk-soaked bread. They simmer in a simple tomato sauce for a comforting, classic dish.
Prep Time: 20 minutes
Cook Time: 45 minutes
Total Time: 1 hour 5 minutes
Servings: 8 servings

Ingredients

For the Soaked Bread

  • 1 cup finely torn fresh white bread, crusts removed (or fine Italian breadcrumbs)
  • ½ cup whole milk

For the Flavor Base

  • ½ cup olive oil
  • 2 medium onions, finely chopped
  • 4 tsp minced garlic (about 4 large cloves)

For the Sauce

  • 2 cans diced, crushed, or whole tomatoes with juices (28 oz each)
  • 2 tsp kosher salt
  • ¼ tsp baking soda
  • 2 sprigs fresh basil (optional)

For the Meatballs

  • 2 large eggs
  • 1 lb ground pork
  • 1 lb ground beef
  • ¼ cup finely grated Parmigiano Reggiano
  • 2 tbsp minced fresh parsley
  • 2 tsp minced fresh oregano (or ½ tsp dried)
  • 2 tsp kosher salt
  • ½ tsp black pepper
  • 2 tbsp oil for frying

Instructions

Soak the bread

  • Add the torn bread and milk to a large bowl, stir, and let sit while you prep the aromatics.

Sauté the aromatics

  • Heat olive oil in a Dutch oven over medium heat. Cook the onions 6–8 minutes until soft. Stir in the garlic and cook 1–2 minutes more. Scoop out half the onion mixture and add it to the soaked bread; leave the rest in the pot as the sauce base.

Make the sauce

  • Add tomatoes, salt, baking soda, and basil to the pot. Bring to a simmer, partially covered. Blend if you prefer a smooth sauce, or leave it chunky. Keep heat low while you prepare the meatballs.

Make the meatball mixture

  • Stir the eggs into the soaked bread. Add pork, beef, Parmigiano, parsley, oregano, salt, and pepper. Mix gently by hand until just combined.
  • Form into 2-inch balls and place on a tray (about 24). Chill in the freezer 5–10 minutes if desired to help them hold their shape.

Fry the meatballs

  • Heat 2 tbsp oil in a large skillet over medium heat. Brown meatballs in batches, turning so all sides develop color, about 6–8 minutes per batch. Do not crowd the pan.

Simmer in the sauce

  • Add browned meatballs to the sauce, stir gently to coat, partially cover, and simmer about 20 minutes or until cooked through (165ºF internal).
  • Taste the sauce and adjust salt if needed. A small splash of soy sauce can add depth if you like.

Notes

Make ahead: Shape meatballs up to a day ahead and refrigerate, or freeze raw or cooked for longer storage.

Baked option: Bake at 425°F for 18–20 minutes, then finish in simmering sauce.

Nutrition: Nutrition values are estimates and should be used as a guide only.

Nutrition

Calories: 405 kcal |
Carbohydrates: 12 g |
Protein: 23 g |
Fat: 30 g

Nutrition information is automatically calculated and is an approximation.

Tried this recipe? Leave a comment!