These are straightforward Italian-American meatballs — beef and pork, soaked breadcrumbs, Parmigiano, simmered in a simple San Marzano marinara. The whole thing takes about 90 minutes and makes enough to feed four generously, with plenty left over for the next day. If you want a reliable, unfussy meatball recipe you’ll come back to on a weeknight, this is it.
Before you start
Two things actually change the outcome here. First, the panade — that’s the breadcrumbs soaked in milk before mixing. Don’t skip it or rush it. Five full minutes of soaking means the crumbs absorb the liquid completely, and that moisture stays locked inside the meatball as it cooks. Dry breadcrumbs stirred straight into the meat mixture pull moisture out instead of adding it, and you’ll end up with a dense, tight meatball. Second, mix the meat gently and stop early. Overworking the mixture develops the proteins and makes the texture rubbery. Use your hands, mix just until everything is combined, and leave it alone — a few streaks of parsley still visible is fine.
Troubleshooting
- Meatballs fall apart in the pan during searing. The mixture was probably too wet, or the oil wasn’t hot enough before you added them. Let the pan heat for a full 2 minutes before the first batch goes in. A properly hot pan sets the outside quickly. Also make sure your breadcrumbs were fully squeezed of excess milk before mixing — they should be damp, not dripping.
- Meatballs are dense and heavy after simmering. This almost always comes from overmixing. Next time, stop mixing the moment you can’t see separate ingredients. Also check your meat ratio — swapping to leaner beef (90%+) removes the fat that keeps things tender, so stick with 80% lean as the recipe specifies.
- Marinara tastes flat or thin after an hour. San Marzano tomatoes vary by brand. If the sauce tastes watery, remove the lid for the last 15–20 minutes of simmering to let it reduce. If it tastes acidic rather than flat, a small pinch of sugar fixes it faster than more cooking time.
- Browned bits on the pan bottom are burning while you make the sauce. After removing the seared meatballs, turn the heat down to medium-low before adding the onion. Those fond bits should dissolve into the onion as it softens — if the pan is still screaming hot, they’ll char and make the sauce bitter. A splash of water can help deglaze if things look dark.
- Leftover meatballs dry out when reheated. Reheat them in the sauce, not separately. Add a small splash of water to the container before microwaving or warming on the stovetop, and keep the heat low. Skip reheating in the oven uncovered — not worth the extra dish, and they’ll lose moisture fast.
Classic Italian Meatballs in Marinara Sauce
Equipment
- Large mixing bowl
- Large sauté pan or Dutch oven
- Wooden spoon
- Baking sheet
- Chef's Knife
Ingredients
For the Meatballs:
- 1 lb ground beef 80% lean for a juicier meatball
- ½ lb ground pork adds richness and depth
- 1 cup fresh breadcrumbs preferably from day-old Italian bread
- ½ cup whole milk for moistening the breadcrumbs
- 2 large eggs room temperature
- ½ cup grated Parmigiano-Reggiano use very finely grated, aged cheese
- ¼ cup finely chopped fresh parsley flat-leaf Italian variety preferred
- 3 cloves garlic minced
- 1 ½ tsp kosher salt
- ½ tsp freshly ground black pepper
For the Marinara Sauce:
- 2 tbsp extra-virgin olive oil
- 1 small yellow onion finely chopped
- 2 cloves garlic minced
- 1 can whole San Marzano tomatoes 28 oz, crushed by hand or pulsed in food processor
- 1 tsp dried oregano or 1 tbsp fresh chopped oregano
- 1 tsp kosher salt
Instructions
- Soak the breadcrumbs in milk for 5 minutes until fully moistened. Gently mix with a fork to incorporate any excess liquid.
- In a large mixing bowl, combine the ground beef, ground pork, soaked breadcrumb mixture, eggs, grated Parmigiano-Reggiano, parsley, garlic, salt, and pepper. Use your hands to gently mix until just combined—don't overwork, or the meatballs will become dense.
- Form the mixture into 1.5-inch meatballs, about the size of a golf ball, and place on a parchment-lined baking sheet.
- Heat a large sauté pan or Dutch oven over medium heat (about 350°F/175°C) and add the olive oil. Sear the meatballs in batches, turning to brown all sides—about 6–8 minutes total. Remove and set aside. Don't overcrowd the pan, or they’ll steam instead of sear.
- In the same pan, add chopped onion and sauté for 5 minutes, scraping up the fond from the bottom. Add garlic and cook for another 1 minute until fragrant.
- Pour in the crushed San Marzano tomatoes. Stir in salt and oregano. Bring to a simmer over low heat (around 300°F/150°C).
- Gently return the meatballs to the sauce. Cover and simmer on low for about 45 minutes, stirring occasionally, until meatballs are cooked through and flavors are melded.
- Adjust seasoning to taste. Serve hot with pasta, polenta, or crusty bread.
Notes
- Use a mix of meats for better flavor—beef lends structure, while pork contributes richness.
- For a gluten-free version, use gluten-free breadcrumbs.
- To caramelize onions faster, add a pinch of salt to draw out moisture as they cook.
- Make meatballs smaller for appetizers or party bites.
Nutrition
Your questions, answered
Can I use all beef instead of the beef-pork mix?
You can, but the meatballs will be slightly firmer and less rich. Pork adds fat and a mild sweetness that balances the beef — without it, the texture is a little tighter even if you do everything else right.
Can I bake the meatballs instead of searing them on the stovetop?
Yes — bake at 425°F for about 18–20 minutes on a parchment-lined sheet until browned. You won’t get quite the same crust, and you’ll miss the fond that flavors the sauce, so add an extra minute of browning time to the onion step to compensate.
Can I make the meatballs ahead and freeze them?
Absolutely — this is one of the best reasons to make the full batch. Freeze cooked meatballs in their sauce in an airtight container for up to 3 months. Thaw overnight in the fridge and reheat gently on the stovetop with a splash of water added to the sauce.
Do I have to use San Marzano tomatoes specifically?
No, but they do make a noticeable difference — they’re less acidic and have a cleaner flavor than many standard canned whole tomatoes. If you use a different brand, taste the sauce before serving and adjust salt and a pinch of sugar as needed.
How do I know when the meatballs are cooked through after simmering?
After 25–30 minutes of gentle simmering in the sauce, a 1.5-inch meatball will be fully cooked. If you want to be certain, an instant-read thermometer should read 160°F at the center — that’s the safe internal temperature for a beef-pork mixture.
More recipes to try
- Authentic Roman Carbonara
- Creamy Fettuccine Alfredo
- Elegant Chicken Marsala with Mushrooms and Marsala Wine
- Rustic Sourdough Focaccia with Rosemary and Sea Salt

















































