There is a certain rhythm to making meatballs the way my grandmother did—the soft patter of her hands mixing the meat, the gentle sizzle as they met the pan, and the slow, patient simmer that filled the kitchen with a fragrance that promised something good. This is not a rushed recipe; it is an unhurried ritual, a conversation between ingredients that have known each other for generations.
Advertisements1
In the small villages of Southern Italy, meatballs were never just food. They were a testament to resourcefulness, a way to stretch a little meat into a feast. My grandmother would soak stale bread in milk, squeeze it dry, and blend it with the ground beef and pork, her fingers working the mixture until it felt just right. She never used a recipe—only her senses. But I have translated her wisdom into these steps, so you too can capture that same soulful depth.
The secret lies not in complexity, but in patience. Let the meatballs rest, let the sauce bubble gently, and let the flavors meld into something greater than the sum of their parts. This is a dish that asks you to slow down, to taste, to adjust. In return, it gives you a moment of pure, unadulterated comfort.
Why You'll Love This Recipe
About the Ingredients
1 cup (240ml) whole milk, plus more if needed
Whole milk adds richness and tenderness. Substitute with 2% or a neutral non-dairy milk, but avoid skim.
1 cup (120g) day-old Italian bread, crusts removed, torn into pieces
Day-old bread is ideal; if fresh, toast lightly. Gluten-free bread works well too.
1/2 cup (50g) freshly grated Parmesan cheese, plus more for serving
Freshly grated melts better and has more flavor. Buy a wedge and grate yourself.
1/4 cup (15g) chopped fresh parsley
Flat-leaf parsley is preferred. In a pinch, use 1 tablespoon dried.
2 large eggs, lightly beaten
Eggs bind the mixture. For a lighter version, use 1 egg plus 1 egg white.
2 cloves garlic, minced
Fresh garlic is essential; jarred minced garlic lacks the punch.
1 teaspoon salt
Fine sea salt dissolves easily. Adjust to taste.
1/2 teaspoon freshly ground black pepper
Freshly ground adds warmth; pre-ground is milder.
1 pound (450g) ground beef (80/20)
80/20 gives the right fat content for juiciness. You can use 85/15, but add a tablespoon of olive oil.
1/2 pound (225g) ground pork
Pork adds richness and moisture. Substitute with ground veal or more beef.
1/2 cup (60ml) olive oil, for frying
Extra-virgin olive oil is traditional. Use a neutral oil if you prefer.
2 cups (480ml) tomato passata or crushed tomatoes
Passata is smooth and sweet. If using crushed, blend for a smoother sauce.
1 small onion, finely chopped
Yellow or sweet onion works. Shallots are a mild substitute.
1 teaspoon dried oregano
Mediterranean oregano is best; use 1 tablespoon fresh if you have it.
1 bay leaf
Adds subtle depth; remove before serving.
Tips & Tricks
- Do not overmix the meatball mixture; combine until just incorporated to keep them tender.
- Wet your hands with cold water before shaping to prevent sticking and create smooth balls.
- If the mixture feels too sticky, add a few dry breadcrumbs; if too dry, add a splash of milk.
Pro Tips
Step-by-Step Instructions
1. Soak the bread
In a small bowl, combine the torn bread and milk. Let soak for 10 minutes until soft. Squeeze out excess milk, reserving the liquid if needed.
2. Mix the meat
In a large bowl, combine the ground beef, pork, squeezed bread, Parmesan, parsley, eggs, garlic, salt, and pepper. Gently mix with your hands until just combined—do not overwork.
3. Shape the meatballs
Roll the mixture into 1.5-inch (4 cm) balls, about 2 tablespoons each. Wet your hands with cold water to prevent sticking.
4. Fry the meatballs
Heat olive oil in a large skillet over medium-high heat (350°F/175°C). Add meatballs in batches, without crowding. Cook 4-5 minutes per side, turning occasionally, until golden brown all over. Transfer to a plate.
5. Start the sauce
In a large pot, heat 2 tablespoons of the frying oil over medium heat (325°F/160°C). Add onion and garlic, sauté 3-4 minutes until translucent and fragrant.
6. Simmer the sauce
Pour in the passata, oregano, and bay leaf. Bring to a gentle simmer, then reduce heat to low (200°F/95°C). Let simmer uncovered for 10 minutes, stirring occasionally.
7. Add meatballs to sauce
Gently place the meatballs into the simmering sauce. Cover and cook on low (180°F/82°C) for 20-25 minutes, turning once, until the meatballs are cooked through (internal temperature 165°F/74°C) and the sauce has thickened slightly.
8. Rest and serve
Remove the bay leaf. Let the meatballs rest in the sauce for 5 minutes before serving. Serve over pasta, in a crusty roll, or alone with extra Parmesan.
Delicious Variations
Turkey Meatballs
Swap the beef and pork for ground turkey (93/7) and add 1 tablespoon olive oil to the mixture for moisture.
Spicy Arrabbiata
Add 1/2 teaspoon red pepper flakes to the sauce and 1/4 teaspoon to the meatball mixture for a kick.
Baked Meatballs
Instead of frying, bake at 400°F (200°C) for 15-18 minutes until golden, then add to the sauce.
How to Store Authentic Italian Meatball Recipes
Refrigerator
Store meatballs and sauce in an airtight container for up to 4 days.
Freezer
Freeze cooked meatballs (with or without sauce) in a freezer-safe container for up to 3 months. Thaw overnight in the fridge.
Reheating
Reheat gently in a saucepan over low heat, adding a splash of water or broth if the sauce is too thick.
Frequently Asked Questions
Q: Can I use breadcrumbs instead of bread soaked in milk?
Yes, you can use 1/2 cup dry breadcrumbs mixed with 1/4 cup milk, but the texture will be slightly denser. The soaked bread gives a lighter, more tender crumb.
Q: How do I know when the meatballs are cooked through?
The safest way is to use a meat thermometer; the internal temperature should reach 165°F (74°C). Also, they should be firm to the touch and no longer pink in the center.
Q: Can I make the meatballs ahead of time?
Absolutely. You can shape them and refrigerate for up to 24 hours, or freeze raw meatballs on a baking sheet and then transfer to a bag for up to 3 months. Cook from frozen, adding a few extra minutes.
Q: What is the best meat to use for Italian meatballs?
A combination of ground beef and pork is traditional, providing a balance of flavor and fat. For a leaner option, use ground turkey or chicken, but add a bit of olive oil to keep them moist.
I hope this recipe brings you the same warmth and connection it has brought to my family for generations. Try it this Sunday, and let me know how it turns out in the comments below. Buon appetito!
Authentic Italian Meatball Recipes
Authentic Italian Meatballs simmered in rich tomato sauce – a Sunday tradition that brings comfort to your table.
🧂 Ingredients
- 1 cup (240ml) whole milk, plus more if needed
- 1 cup (120g) day-old Italian bread, crusts removed, torn into pieces
- 1/2 cup (50g) freshly grated Parmesan cheese, plus more for serving
- 1/4 cup (15g) chopped fresh parsley
- 2 large eggs, lightly beaten
- 2 cloves garlic, minced
- 1 teaspoon salt
- 1/2 teaspoon freshly ground black pepper
- 1 pound (450g) ground beef (80/20)
- 1/2 pound (225g) ground pork
- 1/2 cup (60ml) olive oil, for frying
- 2 cups (480ml) tomato passata or crushed tomatoes
- 1 small onion, finely chopped
- 1 teaspoon dried oregano
- 1 bay leaf
📋 Instructions
- 1Soak the bread — In a small bowl, combine the torn bread and milk. Let soak for 10 minutes until soft. Squeeze out excess milk, reserving the liquid if needed.
- 2Mix the meat — In a large bowl, combine the ground beef, pork, squeezed bread, Parmesan, parsley, eggs, garlic, salt, and pepper. Gently mix with your hands until just combined—do not overwork.
- 3Shape the meatballs — Roll the mixture into 1.5-inch (4 cm) balls, about 2 tablespoons each. Wet your hands with cold water to prevent sticking.
- 4Fry the meatballs — Heat olive oil in a large skillet over medium-high heat (350°F/175°C). Add meatballs in batches, without crowding. Cook 4-5 minutes per side, turning occasionally, until golden brown all over. Transfer to a plate.
- 5Start the sauce — In a large pot, heat 2 tablespoons of the frying oil over medium heat (325°F/160°C). Add onion and garlic, sauté 3-4 minutes until translucent and fragrant.
- 6Simmer the sauce — Pour in the passata, oregano, and bay leaf. Bring to a gentle simmer, then reduce heat to low (200°F/95°C). Let simmer uncovered for 10 minutes, stirring occasionally.
- 7Add meatballs to sauce — Gently place the meatballs into the simmering sauce. Cover and cook on low (180°F/82°C) for 20-25 minutes, turning once, until the meatballs are cooked through (internal temperature 165°F/74°C) and the sauce has thickened slightly.
- 8Rest and serve — Remove the bay leaf. Let the meatballs rest in the sauce for 5 minutes before serving. Serve over pasta, in a crusty roll, or alone with extra Parmesan.



