These Traditional Italian Meatballs are made with ground veal for a tender, delicate texture and are slowly simmered in a rich tomato sauce. They’re so delicious, easy to make and sure enough to become a weeknight staple.

Growing up, meatballs – polpette – were often enjoyed as a course following a pasta dish rather than served over pasta.
The aroma of the tender, cheesy meatballs slowly simmered in an aromatic tomato sauce would fill the house long before we were seated at the table.
It was impossible not to dip some fresh, crusty bread into the pot. In fact, this was a welcome after-school treat…there was just nothing more delicious to us!
This easy meatball recipe is rooted in that same simplicity, made with very humble ingredients. The process of mixing and shaping the meatballs was never rushed but rather slowly simmered, creating something incredibly comforting and packed with flavour.
Ingredients for Classic ItalianVeal Meatballs

The star ingredient in tender Italian meatballs is finely minced veal, which has a more delicate flavour and a softer texture than beef.
When combined with milk-soaked bread, you’ll have a moist, light mixture that never gets dense.
The milk-squeezed bread blends effortlessly with the Parmigiano Reggiano cheese and egg, helping to bind everything together, while the freshly chopped parsley, garlic, and a simple seasoning of salt and pepper add a gentle depth of flavour.
Now, let’s get cooking!
How to Make Traditional Italian Meatballs in Tomato Sauce
First off, prep the milk-soaked bread. You can use any bread you like, and if you have day-old bread, even better. It’s a wonderful way to give it a second life.
Start by removing the crust, as we’re only using the middle part. Cut it or shred it into small pieces, then place it in a bowl and cover it with some milk. Allow the bread to soak while you prep the other ingredients for the meatballs. For about 15 to 20 minutes.
When you’re ready to combine all the meatball ingredients, use your hands to squeeze out the milk from the bread. Then, continue with the recipe steps below.

1 – Place all the meatball ingredients in a medium-sized bowl.
2 – Mix the meatball ingredients well and shape portions of meatballs into the size you prefer. (Wet your hands with water or grease with a little bit of oil, to effortlessly shape the meatballs.) Set aside while you prepare the tomato sauce.

3 – Heat the oil in a sauce pot, then add in the celery, carrots, onions, garlic and crushed chilli pepper. Sauté on medium-low until the onions are translucent. (about 5 minutes)
4 – Pour in the tomato passata. Then, fill the passata bottle halfway with cold water. Swirl the bottle to collect any remaining crushed tomatoes, and pour this into the pot.

5 – Add in the salt, pepper and sprigs of fresh basil. Bring to a low simmer.
6 – Once the sauce starts to simmer, add the raw meatballs directly into the tomato mixture and continue to simmer on low heat for approximately 40 minutes. Stir occasionally. (If the tomato sauce gets a little too dry, add some water and stir to incorporate.

As the meatballs gently simmer, the tomato sauce slowly thickens and sweetens.
This slow and gentle process creates a rich, flavourful sauce with meatballs that are tender, moist, and beautifully plump.
When ready to serve, all that’s needed is a generous sprinkle of freshly grated Parmigiano Reggiano cheese and a garnish of some fresh, fragrant basil.

Every time I make these meatballs, it brings me back to my childhood. A time when my sisters and I would eagerly bounce in from school and greedily scoop out a meatball or two with pieces from a crusty loaf, dripping with fresh tomato sauce.
Our kitchen was always filled with the familiar, comforting aromas and lots of girly giggles around the kitchen table.
Hoping this Italian meatball recipe creates many wonderful and lasting memories for you and your family as well.
Cook with heart and share with love!
Traditional Italian Meatballs
Ingredients
For the Italian Meatballs
- 1 cup bread, cubed and loosely pack (crust removed)
- 1/2 cup milk
- 454 grams ground veal
- 1/3 cup Parmigiano Reggiano cheese (freshly grated)
- 1 large egg
- 1 clove garlic (minced)
- 3 tbls parsley (chopped)
- 1 tsp salt
- 1/2 tsp pepper (ground)
For the Tomato Sauce
- 3 tbls olive oil
- 1/2 cup celery (diced)
- 1/2 onion (chopped)
- 1/2 cup carrots (diced)
- 2 cloves garlic (minced)
- 1 tsp crushed chilli pepper
- 796 ml Passata (strained crushed tomatoes)
- 1 tsp salt
- 1/2 tsp pepper
- 2 sprigs of fresh basil (plus more for garnish)
Instructions
For the Italian Meatballs
- Start by soaking the bread with milk in a small bowl for approximately 15 to 20 minutes.
- Then drain the bread and squeeze out the excess milk.
- Place all the meatball ingredients and the milk-squeezed bread in a medium-sized bowl.
- Mix well and shape portions of meat into well-rounded, medium-sized meatballs. (Have a small bowl of water or oil nearby to moisten your hands and make it easier to shape the meatballs.)
- Place the meatballs on a small platter and set aside while you prepare the tomato sauce.
For the Tomato Sauce.
- Heat the oil in a pot, then add the chopped celery, carrots, onions, garlic and crushed chilli pepper.
- Sauté on medium-low until the onions are translucent. (about 5 minutes)
- Pour in the strained tomatoes.
- Fill the strained tomato bottle halfway with cold water. Swirl the bottle to collect any remaining crushed tomatoes, and pour this into the pot.
- Add in the salt, pepper and sprigs of fresh basil. Bring to a low simmer.
- Once the sauce starts to simmer, add the raw meatballs directly into the tomato mixture and simmer on low heat for approximately 40 minutes. Stir occasionally. (If the tomato sauce gets a little too dry while cooking, you can add some water and stir to incorporate.
- When they're ready, you can serve the meatballs as a second course, topped with grated Parmigiano-Reggiano cheese and garnished with fresh basil.
- Or, you can serve the meatballs over pasta and even make meatball sandwiches out of them.
- The possibilities are endless. Enjoy!

Leave a Reply