Italian Meatballs are incredibly soft, tender, and packed with flavor. This authentic recipe uses two secret techniques: bread soaked in grated onion and a mix of beef and pork to create the most melt-in-your-mouth meatballs you’ve ever tasted. Simmered in a rich tomato sauce and served over pasta, this is pure Italian comfort food at its finest.
Love More Meatballs? Try My Baked Chicken Parmesan Meatballs or this Cranberry Meatballs next.

Why You’ll Love This Recipe
Tender, juicy, and full of classic Italian flavor, these meatballs are seasoned with herbs, garlic, and Parmesan for the perfect bite. Simmered in rich marinara sauce, they become even more flavorful and comforting. Serve them over pasta, in subs, or as a delicious appetizer.
Print
Italian Meatballs
- Total Time: 40 minutes
- Yield: 20-24 meatballs
Description
Authentic Italian meatballs made with two secret techniques for the most tender, flavorful meatballs you’ve ever tasted. Bread soaked in grated onion creates incredibly soft texture while the beef and pork blend simmers in rich tomato sauce. Perfect over pasta or in subs!
Ingredients
For the Meatballs:
- 1 lightly packed cup diced white sandwich bread, crusts removed
- 1 small onion (brown, white, or yellow), grated
- 14 oz (400g) ground beef
- 3 oz (100g) ground pork (or substitute with more beef)
- 1 egg
- ¼ cup fresh parsley, finely chopped
- 2 garlic cloves, minced
- ¼ cup Parmigiano-Reggiano (or parmesan), freshly grated
- ¾ teaspoon salt
- ¼ teaspoon black pepper
For Cooking Meatballs & Sauce:
- 2½ tablespoons olive oil, divided
- 2 garlic cloves, minced
- ¾ cup onion, finely chopped (white, brown, or yellow)
- 24 oz (700g) tomato passata (tomato puree in US/Canada)
- ½ cup water
- 1 teaspoon red pepper flakes (chili flakes)
- 3 teaspoons dried Italian herb mix (parsley, basil, thyme, oregano)
- 1 teaspoon salt
- Black pepper to taste
To Serve:
- Pasta of choice
- Parmesan cheese
- Fresh parsley, finely chopped (optional)
Instructions
Grate the small onion using a standard box grater into a large bowl until you have about ½ cup of grated onion and all those delicious juices. Don’t throw away the juice—that’s liquid gold for our meatballs!
Add the diced bread to the grated onion and mix everything together so the onion juice soaks into the bread until it starts to disintegrate. Set this aside while you prep the other ingredients—about 5 minutes is perfect. You’ll see the bread transform into a soft, flavorful paste.
Add all the remaining meatball ingredients (beef, pork, egg, parsley, garlic, Parmesan, salt, and pepper) to the bowl with your onion-bread mixture. Here’s the KEY: use your hands to mix everything well, but DON’T overmix! Once everything is just combined, stop. Overmixing makes tough meatballs, and we want tender ones!
Measure out a heaped tablespoon of the mixture and roll it lightly between your palms to form a ball. Don’t pack them too tightly—gentle hands make tender meatballs! Repeat with the remaining mixture. You should get about 20-24 meatballs depending on size.
Heat 1½ tablespoons of olive oil in a large non-stick fry pan over medium-high heat. Add the meatballs (work in batches if needed—don’t crowd the pan!) and brown them all over—about 3-4 minutes total. They should be golden and gorgeous on the outside but NOT cooked through yet. Carefully transfer them onto a plate.
In the same fry pan (all those brown bits = flavor!), heat 1 tablespoon of olive oil over medium heat. Add the chopped onion and minced garlic and sauté for 2-3 minutes until they’re soft and translucent. Add the tomato passata, water, red pepper flakes, Italian herbs, salt, and black pepper. Bring everything to a simmer, then turn the heat down to medium-low so it bubbles gently rather than splattering all over your stove!
Carefully nestle the browned meatballs and ANY juices that have pooled on the plate back into the sauce. This is where the magic happens! Cook the meatballs for 8-10 minutes, turning and stirring occasionally, until they’re cooked through and have absorbed all that incredible sauce flavor. Taste the sauce and adjust the salt and pepper if needed.
While the meatballs are simmering away, cook your pasta according to package directions. Drain it, plate it up, and top with those beautiful meatballs and plenty of sauce. Garnish with extra Parmesan and a sprinkle of fresh parsley.
Notes
- Don’t Overcook During Browning: Remember, you’re just creating a flavorful crust here—the meatballs will finish cooking in the sauce. If you cook them all the way through during browning, they’ll be overcooked and dry by the time they’re done simmering.
- Use a Cookie Scoop: If you want perfectly uniform meatballs (they’ll cook more evenly!), use a small cookie scoop or ice cream scoop instead of a tablespoon.
- Keep Them Tender: The enemy of tender meatballs is overworking the mixture. Mix just until combined, and roll gently—don’t compress them like you’re making snowballs!
- Fresh vs. Dried Herbs: Fresh parsley is SO worth it in the meatballs themselves, but dried Italian herbs work perfectly fine for the sauce.
- Prep Time: 15 minutes
- Cook Time: 25 minutes
- Category: Main Dish
- Method: Stovetop
- Cuisine: Italian
Ingredient List
For the Meatballs:
- 1 lightly packed cup diced white sandwich bread, crusts removed
- 1 small onion (brown, white, or yellow), grated
- 14 oz (400g) ground beef
- 3 oz (100g) ground pork (or substitute with more beef)
- 1 egg
- ¼ cup fresh parsley, finely chopped
- 2 garlic cloves, minced
- ¼ cup Parmigiano-Reggiano (or parmesan), freshly grated
- ¾ teaspoon salt
- ¼ teaspoon black pepper
For Cooking Meatballs & Sauce:
- 2½ tablespoons olive oil, divided
- 2 garlic cloves, minced
- ¾ cup onion, finely chopped (white, brown, or yellow)
- 24 oz (700g) tomato passata (tomato puree in US/Canada)
- ½ cup water
- 1 teaspoon red pepper flakes (chili flakes)
- 3 teaspoons dried Italian herb mix (parsley, basil, thyme, oregano)
- 1 teaspoon salt
- Black pepper to taste
To Serve:
- Pasta of choice
- Parmesan cheese
- Fresh parsley, finely chopped (optional)
Substitution Notes:
- Bread: Can be substituted with ½ cup panko breadcrumbs (meatballs won’t be quite as soft but still very tender)
- Fresh herbs: Can be substituted with 1½ tablespoons dried parsley or Italian herb mix
- Pork: Can be replaced with more beef (total 1 lb/500g beef)
Why These Ingredients Work
Soaked Bread: This is THE game-changer! When bread soaks up liquid and then cooks, it creates tiny air pockets that make the meatballs incredibly soft and tender. This works SO much better than regular breadcrumbs, which can actually make meatballs dense and tough.
Grated Onion: Instead of finely chopping onion (which can leave crunchy bits) or cooking it separately (extra work!), we grate it. The juicy grated onion serves triple duty—it soaks the bread, adds deep flavor throughout, and helps bind everything together.
Beef + Pork Combo: The beef gives you that rich, meaty flavor while the pork adds extra tenderness and a subtle sweetness. If you only have beef on hand, that’s totally fine—just use 1 lb total!
Fresh Parmesan: Don’t skip this! Freshly grated Parmigiano-Reggiano adds a salty, nutty depth that pre-grated cheese just can’t match.
Tomato Passata: This smooth, uncooked tomato puree creates a silky sauce that clings beautifully to the meatballs without being chunky or heavy.
Essential Tools and Equipment
- Box grater (for grating the onion)
- Large mixing bowl
- Tablespoon (for portioning meatballs)
- Large non-stick fry pan or skillet with lid
- Wooden spoon or spatula
- Large pot (for cooking pasta)
- Tongs or slotted spoon
How To Make Italian Meatballs
Step 1: Grate the Onion
Grate the small onion using a standard box grater into a large bowl until you have about ½ cup of grated onion and all those delicious juices. Don’t throw away the juice—that’s liquid gold for our meatballs!
Step 2: Soak the Bread
Add the diced bread to the grated onion and mix everything together so the onion juice soaks into the bread until it starts to disintegrate. Set this aside while you prep the other ingredients—about 5 minutes is perfect. You’ll see the bread transform into a soft, flavorful paste.
Step 3: Mix the Meatball Mixture
Add all the remaining meatball ingredients (beef, pork, egg, parsley, garlic, Parmesan, salt, and pepper) to the bowl with your onion-bread mixture. Here’s the KEY: use your hands to mix everything well, but DON’T overmix! Once everything is just combined, stop. Overmixing makes tough meatballs, and we want tender ones!
Step 4: Form the Meatballs
Measure out a heaped tablespoon of the mixture and roll it lightly between your palms to form a ball. Don’t pack them too tightly—gentle hands make tender meatballs! Repeat with the remaining mixture. You should get about 20-24 meatballs depending on size.
Step 5: Brown the Meatballs
Heat 1½ tablespoons of olive oil in a large non-stick fry pan over medium-high heat. Add the meatballs (work in batches if needed—don’t crowd the pan!) and brown them all over—about 3-4 minutes total. They should be golden and gorgeous on the outside but NOT cooked through yet. Carefully transfer them onto a plate.
Step 6: Make the Sauce
In the same fry pan (all those brown bits = flavor!), heat 1 tablespoon of olive oil over medium heat. Add the chopped onion and minced garlic and sauté for 2-3 minutes until they’re soft and translucent. Add the tomato passata, water, red pepper flakes, Italian herbs, salt, and black pepper. Bring everything to a simmer, then turn the heat down to medium-low so it bubbles gently rather than splattering all over your stove!
Step 7: Cook the Meatballs in Sauce
Carefully nestle the browned meatballs and ANY juices that have pooled on the plate back into the sauce. This is where the magic happens! Cook the meatballs for 8-10 minutes, turning and stirring occasionally, until they’re cooked through and have absorbed all that incredible sauce flavor. Taste the sauce and adjust the salt and pepper if needed.
Step 8: Cook Pasta and Serve
While the meatballs are simmering away, cook your pasta according to package directions. Drain it, plate it up, and top with those beautiful meatballs and plenty of sauce. Garnish with extra Parmesan and a sprinkle of fresh parsley.

You Must Know
Don’t Skip the Soaking Time: That 5 minutes for the bread to soak in the onion juice is CRUCIAL. It needs time to really absorb all that moisture and break down. If you rush it, your meatballs won’t be as soft.
Personal Secret: After forming all my meatballs, I wet my hands slightly before rolling each one. This prevents the mixture from sticking to your hands AND creates a smoother surface on the meatballs that browns more evenly!
Pro Tips & Cooking Hacks
- Don’t Overcook During Browning: Remember, you’re just creating a flavorful crust here—the meatballs will finish cooking in the sauce. If you cook them all the way through during browning, they’ll be overcooked and dry by the time they’re done simmering.
- Use a Cookie Scoop: If you want perfectly uniform meatballs (they’ll cook more evenly!), use a small cookie scoop or ice cream scoop instead of a tablespoon.
- Keep Them Tender: The enemy of tender meatballs is overworking the mixture. Mix just until combined, and roll gently—don’t compress them like you’re making snowballs!
- Fresh vs. Dried Herbs: Fresh parsley is SO worth it in the meatballs themselves, but dried Italian herbs work perfectly fine for the sauce.
- Make Them Spicier: Love heat? Add extra red pepper flakes or mix a pinch of cayenne directly into the meatball mixture.
Flavor Variations & Suggestions
Turkey Meatballs: Swap the beef and pork for ground turkey (use 85/15 for best results—you need some fat for flavor and moisture).
Greek-Style: Replace the Parmesan with feta cheese, add fresh mint instead of parsley, and use oregano in the sauce.
Extra Herby: Mix in some fresh basil or oregano with the parsley for even more herb flavor.
Cheese Lovers: Stuff each meatball with a small cube of mozzarella for a melty surprise center!
Wine-Enriched Sauce: Add ¼ cup red wine to the sauce after sautéing the onions and garlic. Let it reduce for a minute before adding the tomato passata.
Make-Ahead Options
Unbaked Meatballs: Form the meatballs and place them on a parchment-lined baking sheet. Freeze until solid (about 2 hours), then transfer to a freezer bag. They’ll keep for up to 3 months. When ready to use, thaw in the fridge overnight and proceed with browning.
Fully Cooked: Make the entire recipe through Step 7, let cool completely, then refrigerate for up to 3-4 days or freeze for up to 3 months. This is PERFECT for meal prep or making ahead for a dinner party!
Day-Before Prep: You can make the meatball mixture a day ahead, form the balls, cover, and refrigerate overnight. Brown and cook the next day.
Recipe Notes & Baker’s Tips
Why Grate the Onion? I know it seems fussy, but trust me on this one! Grated onion distributes evenly, adds moisture, and won’t give you those surprise crunchy onion bits in your tender meatballs.
Panko vs. Fresh Bread: If you’re in a pinch and only have panko, use ½ cup and add 2-3 tablespoons of milk to the grated onion to create enough soaking liquid.
Sauce Too Thick? Add a splash of pasta cooking water or regular water and stir. The starch from pasta water will help the sauce cling to your pasta even better!
Can I Bake These Instead? Absolutely! Bake at 400°F (200°C) for 15-20 minutes instead of pan-frying, then simmer in sauce as directed. The texture will be slightly different but still delicious!
Serving Suggestions
These Italian meatballs are incredibly versatile! Here are my favorite ways to serve them:
Classic: Toss with spaghetti, bucatini, or penne and shower with freshly grated Parmesan.
Meatball Subs: Nestle them into crusty Italian rolls with melted mozzarella and extra sauce for the ultimate comfort sandwich.
With Polenta: Serve over creamy polenta instead of pasta for a cozy, rustic meal.
Appetizer Style: Make smaller cocktail-sized meatballs and serve with toothpicks as a party appetizer.
Side Dishes: Pair with a crisp Caesar salad, garlic bread, or roasted vegetables. A glass of Chianti or Sangiovese wouldn’t hurt either!

How to Store Your Italian Meatballs
Room Temperature: Cooked meatballs shouldn’t sit at room temperature for more than 2 hours.
Refrigerator: Store cooked meatballs in sauce in an airtight container in the refrigerator for up to 3-4 days. The flavor actually gets BETTER the next day!
Freezer: These meatballs freeze beautifully! Cool completely, then freeze in sauce in airtight containers or freezer bags for up to 3 months. Thaw overnight in the refrigerator before reheating.
Reheating: Reheat gently on the stovetop over low heat, stirring occasionally. You can also microwave them, but I find the stovetop method keeps them more tender. Add a splash of water or stock if the sauce has thickened too much during storage.
Allergy Information
Contains: Eggs, dairy (Parmesan cheese), wheat (bread)
Gluten-Free Option: Use gluten-free bread or certified gluten-free panko breadcrumbs and gluten-free pasta.
Dairy-Free Option: Omit the Parmesan or substitute with nutritional yeast for a cheesy flavor without dairy.
Egg-Free Option: Replace the egg with a flax egg (1 tablespoon ground flaxseed + 3 tablespoons water, let sit 5 minutes) or 3 tablespoons of additional grated onion for binding.
Questions I Get Asked A Lot.
My meatballs fell apart in the sauce—what went wrong?
This usually happens when the mixture is too wet or wasn’t mixed enough. Make sure you’re measuring the bread loosely (not packed), and that you’ve mixed the ingredients well enough to bind everything together. Also, browning them properly before adding to the sauce helps create a “crust” that holds them together!
Can I make these ahead and freeze them uncooked?
Yes! Form the meatballs, place them on a parchment-lined baking sheet, and freeze until solid (about 2 hours). Then transfer to a freezer bag for up to 3 months. Cook from frozen—just add a few extra minutes to the browning time.
Do I have to use fresh bread, or can I use stale bread?
Fresh bread actually works better because it’s softer and absorbs the onion juice more easily. If you only have stale bread, add a tablespoon or two of milk to help soften it up.
The sauce is too acidic—how can I fix it?
Add a pinch of sugar (½ to 1 teaspoon) to balance the acidity of the tomatoes. You can also add a small splash of cream or an extra drizzle of olive oil to mellow it out.
💬 Tried this recipe? Leave a comment and rating below! I’d love to hear how your Italian meatballs turned out!



