Classic Italian Meatballs (Tender and Juicy!)
This post may contain affiliate links. Please read my disclosure policy.
A 30-minute family-style meatball recipe with hundreds of 5-star reviews! This recipe makes a batch of tender, juicy Italian-American-style meatballs to serve up to 6 people. Bake the meatballs in the oven or cook on the stovetop.

If you’re looking for an authentic Italian-American meatball recipe to serve with spaghetti or pasta, these juicy beef and pork meatballs are the real deal. Based on my mother’s recipe, I can honestly say this recipe makes the best homemade Italian meatballs ever.
These easy-to-make meatballs are made with ground beef and pork, strewn with fresh parsley, garlic and grated cheese. But the “secret” to good meatballs comes down to their juicy, delectable texture. And that is the result of including soft, milk-soaked breadcrumbs.

My mom’s stellar meatballs really set the standard. For Sunday dinner, she would serve a large platter of meat that had spent the better part of the day braising in the “gravy” — a/k/a rich, long-cooked tomato sauce. I always made a beeline for those meatballs.
Like any childhood comfort food, a good Italian meatball represents a time, place and taste that never fails to be delicious. Sure, give me a big bowl of pasta carbonara and I’ll be happy. But I’ll still want a meatball!
Best meat for Italian meatballs
To make the juiciest, tastiest meatballs, our family stands by using cuts of meat that have generous fat marbling. This old-school meatball recipe uses an equal mixture of beef and pork.
- Ground beef chuck: We’re not talking generic ground beef here. Look for ground chuck, which has 15-20 percent more fat than lean beef and makes the best meatball.
- Ground pork: Ground pork usually comes from the meaty pork shoulder, also called Boston butt or pork butt, and has more fat than meat from the loin.
- Ground veal (optional): There are many old-school traditional meatball makers who swear by an equal mix of beef, pork and veal. By all means add it to your mix, if that’s you!
- Italian sausage: I sometimes make meatballs with bulk Italian sausage meat instead of pork. Since it’s already seasoned, use about 1/2 teaspoon less salt.
About the ingredients

- Meat: Some say that it’s more old-school for traditional Italian cooks to use a combination of beef, veal and pork to make meatballs (and you can too). Because ground veal isn’t as readily available, I prefer to use a half-and-half mixture of ground beef and ground pork for the best texture and flavor. If possible, buy meat that’s freshly ground in the store. I find it releases less water, and it’s definitely fresher-tasting than vacuum-packed ground meat.
- Fresh bread crumbs: I’m going to be honest with you — good breadcrumbs are key to a great, tender meatball. Fresh crumbs made from are my top choice because they’re light, moist and fluffy, which is the texture you’re going for in a meatball. Fresh breadcrumbs have more moisture than the fine dry breadcrumbs that come in a can.
- Milk: Use dairy milk or a full-fat plant based milk to blend with the breadcrumbs — this is called a “panade”, which is basically a mixture of starch and liquid that makes the meatballs light and moist inside.
- Grated cheese: My first choice is sharp, salty pecorino Romano cheese (our family is southern Italian) but you can also use freshly grated Parmesan cheese.
- Garlic: Please use fresh garlic, and grate it with a rasp grater, finely chop or use a garlic press.
- Fresh herbs: 1/3 cup fresh Italian flat leaf chopped parsley or basil (or a mixture of both), roughly chopped. Dried herbs will work in a pinch — use 2 teaspoons.
How to make meatballs, step by step:

1. Put the ground pork and beef in a large bowl. 
2. Combine with a fork or your hands until blended.

3. Put the bread pieces in a bowl, cover with milk and soak 5 minutes. 
4. Add the egg yolks, cheese, garlic and salt and pepper. 
5. Mash with a fork to make a coase paste (panade).

6. Add the bread mixture and parsley to the ground meat. 
7. Blend together with your hands or a large fork until evenly mixed. Hint: You can also use a standing mixer on low speed to mix.

8. Form into 1/4-cup portions with an oiled cookie scoop or measuring cup. 
9. Expert tip: Lightly form into balls without overworking the meat, which will toughen the texture of the meatballs.

10. Cook meatballs: Heat olive oil in a large skillet over medium-high heat. Cook meatballs until browned all over, then cover the pan, lower the heat and cook 8-10 minutes. 
11. To bake meatballs: Arrange on an oiled baking sheet and bake 20 minutes at 425 degrees, turning halfway.

Classic Italian Meatballs (Tender and Juicy!)
Recipe Video
Ingredients
- ½ cup (54 g) fresh breadcrumbs, from 1-2 slices white bread (crust removed)
- ¼ cup (60 ml) milk
- 2 egg yolks
- ½ cup (50 g) grated pecorino Romano cheese, or Parmesan cheese
- 2 garlic cloves, finely chopped or grated
- 1 teaspoon (8 g) salt, or 2 teaspoons Diamond brand kosher salt (see note below)
- 1 teaspoon ground black pepper
- 1 pound (450 g) ground beef chuck
- 1 pound (450 g) ground pork, or veal
- ¼ cup grated onion, optional
- â…“ cup (30 g) chopped parsley, or basil
- Olive oil
Instructions
- Put the breadcrumbs in a small bowl and pour the milk over. Let them soak for 5 minutes. Add the egg yolks, cheese, garlic, salt, and pepper to the bowl and mash together to form a coarse paste.
- Put the beef, pork and onion (if using) in a large bowl and mix with a fork to blend. Add the bread mixture and parsley. Blend everything together well, using your hands, large wooden spoon or large fork. You can also mix in a standing mixer on low speed, just until blended. The meatball mixture can be mixed and refrigerated 2 days ahead of shaping and cooking.
- Form the meatballs: Use a ¼-cup measuring cup or cookie scoop to portion the mixture and roll lightly into balls. They don’t have to be perfect — craggy meatballs have character and hold the sauce better!
To cook on the stovetop:
- Pour enough oil into a large skillet to coat the bottom and place over medium-high heat. When the pan is hot, add as many meatballs as will fit in the pan without crowding. Note: They should sizzle as soon as they hit they pan or the pan isn’t hot enough.
- Brown the meatballs on all sides. Cover the pan, lower the heat and continue cooking and until the meatballs are firm and cooked through (165 degrees on a instant thermometer), which should take about 15 minutes total. Repeat the frying with remaining meatballs, pouring out the oil and adding a fresh layer each time.To finish cooking in tomato sauce:If you'd rather finish cooking the meatballs in tomato sauce (my preference), transfer them to a pot of simmering sauce just after browning on all sides. They won't be cooked all the way through. Simmer until they're cooked through, 10-12 minutes.
To bake the meatballs:
- Preheat the oven to 425 degrees.
- Arrange the meatballs on an olive-oiled coated rimmed baking sheet. Bake 10 minutes, then turn the meatballs over with a spatula or pair of tongs. Continue baking until nicely browned and cooked through, another 10-12 minutes.
- Serve the warm meatballs with marinara sauce or your favorite prepared tomato sauce.
Karen’s Notes and Tips
- To make fresh breadcrumbs:Â Trim the crust from a few slices of hearty country or Italian-style bread. Tear the bread into large pieces and pulse in a food processor until you see coarse pea-size crumbs or just tear them into pieces with your hands.
- To use dried breadcrumbs: Adjust the amount to 1/3 cup instead of the 1/2 cup of fresh crumbs. I recommend unseasoned dried breadcrumbs. If yours are seasoned, reduce the amount of salt in the recipe by 1/2 teaspoon.
- Panko: Use the full amount (1/2 cup), adding more by the tablespoon if the mixture doesn’t hold together
- Gluten-free breadcrumbs: Fresh or dried will work fine, following the tips above.
- Note on salt:  Kosher salt has a larger grain than regular table salt. Because the granules are fluffier than fine salt, there’s less salt per volume in a teaspoon of kosher salt than there is fine salt. The brand of kosher salt that I use for all recipes on this site is Diamond Kosher. If you use Morton kosher salt or another brand of kosher salt other than Diamond, reduce the amount of salt specified by one-half.
- Meatballs can be made ahead and frozen up to 2 months. Cool the cooked meatballs completely. Arrange them in a freezer-proof container or heavy-duty freezer bag. Label the container with the contents and date. Defrost overnight in the refrigerator, then gently heat in your favorite tomato sauce on the stovetop..
- An electric standing mixer is handy to blend the meat and seasonings if you’d rather not do it by hand.
Nutrition per serving
Nutrition facts are calculated by third-party software. If you have specific dietary needs, please refer to your favorite calculator.

Hey, I’m Karen
Creator of Familystyle Food
I’m a food obsessed super-taster and professionally trained cook ALL about creating elevated dinners with everyday ingredients. Find simplified recipes made from scratch and enjoy incredibly tasty food! Read more about me here.












Hi Karen. Flavor was delicious. But my meatballs were too soft. I couldn’t really brown them well because they would change shape in the pan and fall apart. Help what did I do wrong? I used chuck 80/20 and veal. Guide me please.
Hi Alicia – I’m glad you liked how they tasted! When the meatballs don’t hold their shape, it’s usually because they need a firmer hand when forming. My tips: Make sure the mixture is well combined, then portion and pat them to compact in your hands, so they hold their shape when they hit the pan.
Thank you Karen!
I made these last night and they are the best meatballs EVER! I used a pound of the 80/20 ground beef, and a pound of a very mild Italian seasoned ground pork. This was not a fancy Italian sausage from a specialty store, just a grocery store pork. I used two extra cloves of garlic. Two thick slices of Pepperidge Farm Homestyle bread, crusts removed and maybe a little extra milk. I loved the trick of mixing everything in with the bread. I did use fresh chopped basil. I mixed it all together with my very clean hands. Then very lightly formed the balls and put on a baking sheet without any liner. I lightly smeared some olive oil on the sheet to be sure they wouldn’t stick, but not sure it was necessary. Followed the cooking instructions and used a meat thermometer to check for correct temp. These meatballs were heaven. Not dense hockey pucks. Not chewy. Almost airy, but in the best way. I now have a secret weapon recipe. I made a very simple homemade batch of marinara with crushed canned tomatoes.
Can you substitute milk for water, I’m using ground turkey and sage sausages.
Yes, water will work fine.
I tried the recipe today and it turned out wonderful; combined beef, pork and veal as I had all three.
Thanks.
Love these meatballs! I used 1.25 lbs of the local store’s “meatloaf mix” (beet, veal, and pork). and 1.15 lbs of ground beef, and a little extra bread. It worked great. I made the meatballs a little on the smaller side and got a yield of 30 which is enough for 3 dinners of spaghetti and meatballs for two. (Or a bunch of meatball sandwiches.) I cooked 10 at a time, and the total cook time was about 45 minutes. That included the browning time.
I’m having 9 of them in sauce with spaghetti tonight. (I had to eat one just to try it out.) I have 20 more that I am freezing for future use. I love a recipe that allows you to make a bunch at once so you can quickly use the leftovers whenever you want to!