This post may contain affiliate links. Please read our disclosure policy.
These are going to be the BEST Homemade Meatballs you’ll ever have! They’re juicy and moist, perfectly seasoned and simmered in an easy and delicious homemade tomato sauce. The best part is you can get it done in under an hour!

Watch the Homemade Meatballs recipe video!
Table of Contents
My 2 Key Tips for the Best Homemade Meatballs
There are two things I do differently that makes my homemade meatballs the best:
- Rehydrate the breadcrumbs – Rehydrating the breadcrumbs with a liquid (such as milk) is my key tip to juicy, moist meatballs! Using moist breadcrumbs will make your meatballs much more juicy, while also working better as a binder. If you need to substitute the milk, you can use chicken stock or beef stock instead.
- Freeze the meatballs for 15 minutes – After you’ve rolled the meatballs, lay them on a parchment paper or foil lined tray and freeze for 15 minutes. Make sure the meatballs are not touching each other! Freezing the meatballs for 15 minutes will help firm them up and help them keep their shape when cooking them.
Serve homemade Meatballs with Braised Short Ribs and crispy Roasted Brussels Sprouts for a delicious and decadent Sunday dinner!
Ingredient Tips
- ground beef (85% lean/15% fat) – I recommend a slightly higher fat content for the beef, as it will have more flavor. However, this is up to you.
- ground pork (80% lean/20% fat) – subsitute with ground turkey if you can’t have pork.
- whole milk – this is for hydrating the breadcrumbs (one of my key tips to making moist and juicy meatballs); if you don’t have milk on hand or want to avoid dairy, you can use chicken or beef stock.
- canned tomatoes (preferably San Marzano) – I recommend using canned San Marzano tomatoes (used in dishes like Chicken Parmesan or Bucatini all’Amatriciana). They are a certified product of the San Marzano region of Italy and you can truly taste the difference in the sauce. Make sure the label clearly states “San Marzano” (not “San Marzano style”).
- If you cannot use canned San Marzano tomatoes, you can use another canned tomato or fresh tomatoes if they are in season (May through October). I love cooking with fresh tomatoes, such as in my Cherry Tomato Pasta!
If you’re looking for a delicious pasta to without a tomato sauce to pair these meatballs with, try my wife’s favorite Carbonara, authentic Fettuccine Alfredo, a foolproof Cacio e Pepe, or a bright and lemony Pasta al Limone! If you would like some seafood with your pasta, try Linguine with Clams or Shrimp Scampi Pasta!
Recipe Instructions
1. Season and Hydrate the Breadcrumbs
Start by adding unseasoned breadcrumbs in large mixing bowl with salt, pepper, grated parmesan, garlic, parsley, and dried oregano (You can use store bought or homemade breadcrumbs – up to you!). Mix with your hands to ensure the breadcrumbs and seasonings are evenly distributed.
Add milk slowly and mix into the breadcrumbs with your hands. This is called hydrating your breadcrumbs and is my key tip to making moist, delicious meatballs. Do not skip this step!
2. Mix and Form the Meatballs
Take a baking sheet or tray and line with parchment paper or foil.
To the bowl of seasoned and hydrated breadcrumbs, add your ground meat (beef and pork), egg, and olive oil. Mix until thoroughly incorporated.
I like my meatballs on the medium to larger size, so I take 4 ounces of meat and roll them into balls. Refer to the image for scale. You can form the meatballs into any size you prefer – just keep in mind cooking time (larger will require longer cooking time for food safety).
Roll the meatballs and lay them on the baking sheet or tray with parchment paper or foil. Make sure the meatballs do not touch each other. Place the sheet or tray with the meatballs into the freezer for 15 minutes – this will help firm up the meatballs and hold their shape when cooking them!
3. Fry the Meatballs
After freezing for 15 minutes, take out the sheet or tray with meatballs.
Take a large non stick pan and add 4 tablespoons of olive oil over medium-high heat. Sear the meatballs on each side for a total of 3-4 minutes – they should be golden brown all over. Remove the meatballs from the pan and place on a plate.
Do not remove the fat and olive oil in the pan! This is going to add tons of flavor to your tomato sauce!
4. Make the Tomato Sauce
Dice your onions and garlic.
In the same pan with the remaining fat and oil, sauté diced onion and garlic over medium heat, until the onions are translucent, about 2-3 minutes. Add the San Marzano tomatoes. As you cook them, crush the tomatoes until no large chunks remain. Add the crushed red pepper, sugar, dried oregano, dried thyme, salt, pepper and mix until evenly distributed. Simmer for 15 minutes over medium heat.
5. Simmer the Meatballs
Add the meatballs to the tomato sauce. Rotate the meatballs in the sauce so all parts of the meatballs come in contact with the sauce if you are using a wider pan like in the photo below. Cover and let the meatballs and sauce simmer for another 30 minutes; the meatballs should be cooked through and tender. Make sure to cut into one to confirm they’re done!
At this point, you can enjoy the Meatballs on their own OR make some pasta. If making pasta: cook your spaghetti (or pasta of choice) in salted water to al dente (approximately 2 minutes less than the package instructions). Drain and add the cooked spaghetti directly into the sauce and mix to finish. Enjoy your Spaghetti and Meatballs!
PRO TIPS
Expert Tips
Hydrate the Breadcrumbs
Hydrating the breadcrumbs with a liquid (such as milk) is my key tip to juicy, moist meatballs! If you need to substitute the milk, you can use chicken stock or beef stock instead.
San Marzano Tomatoes
I highly recommend using canned San Marzano tomatoes , which are a certified product of the San Marzano region of Italy. Trust me, you can really taste the difference in the sauce. Make sure the label clearly states “San Marzano” (not “San Marzano style”).
If you cannot use canned San Marzano tomatoes, you can substitute with another canned tomato or fresh tomatoes (especially if they are in season!)
Freeze the Meatballs!
After you’ve rolled the meatballs, lay them on a parchment paper or foil lined tray and freeze for 15 minutes. Make sure the meatballs are not touching each other! Freezing the meatballs for 15 minutes will help firm them up and help them keep their shape when cooking them! Do not skip this step if possible!
Seasonings
I opt for dried oregano, dried thyme, and crushed red pepper flakes for my sauce, but feel free to add additional seasonings such as chopped fresh basil or fresh basil leaves for a bright, fragrant burst of flavor!
Storage and Reheating
You can make the meatballs and sauce ahead of time and store in an airtight container in the refrigerator for up to 4 days. When you are ready to eat your Meatballs, heat your sauce and meatballs up in one pan while you cook your pasta. Finish the spaghetti in the sauce and serve – dinner is done in 20 minutes!
If you want to freeze Meatballs, I recommend freezing the sauce and meatballs separately.
- Freeze the meatballs on a parchment lined sheet or tray for 1-2 hours before transferring into a freezer safe bag. This will help them from sticking together in the freezer.
- Once the sauce has cooled, I like to ladle it into freezer safe bags about halfway. I’ll lay them flat on a baking sheet or tray and flatten the sauce until it becomes a flat rectangle or square. I freeze them on the baking sheet or tray until they hold their shape before removing the sheet or tray.
More Dinner Ideas!
Looking for more dinner ideas? I love easy and comforting classics like Meatloaf (with the perfect glaze!) or Fried Chicken. If you want to impress someone, you have to make my Braised Short Ribs with Mashed Potatoes or Steak with Peppercorn Sauce! For a lighter option, I love using my air fryer – favorites include Air Fryer Chicken Thighs and Air Fryer Chicken Tenders. You can’t forget about the sides – Roasted Brussels Sprouts or Roasted Cauliflower goes with everything!
If you tried this Homemade Meatballs or any other recipe on my website, please leave a 🌟 star rating and let me know how it went in the comments below!
The BEST Homemade Meatballs (Video)
Ingredients
Meatballs
- 1 lb Ground Beef, 85% lean, 15% fat
- 1 lb Ground Pork, 80% lean, 20% fat
- 1 cup unseasoned Breadcrumbs
- 1 cup whole milk
- 1 cup grated parmesan cheese
- 3 cloves garlic, finely minced
- 1/3 cup extra virgin olive oil, plus 1/4 cup for searing the meatballs
- 2 tsp kosher salt
- 1 tsp black pepper
- 2 tbsp flat leaf parsley, chopped
- 2 tsp dried oregano
- 1 large egg
Tomato Sauce
- 1 yellow onion, finely minced
- 4 cloves garlic, finely minced
- 1 28 oz can tomatoes, I highly recommend you use San Marzano tomatoes
- 1 tsp crushed red pepper
- 1 tsp sugar
- 1/2 tsp dried oregano
- 1/2 tsp dried thyme
- salt and pepper, to taste
Instructions
- Add unseasoned breadcrumbs to a bowl. Season with salt, pepper, grated parmesan, garlic, parsley, oregano. Stir to combine then add milk and mix through with your hands until the breadcrumbs are moist and softened.
- Add the ground beef and ground pork, egg, and olive oil and mix until thoroughly combined. Take 4 ounces of the meat mixture and roll them into balls with your hands. Lay them on a tray lined with parchment paper and freeze them for 15 minutes to allow the meatballs to firm up and hold their shape.
- In a non stick pan over medium high heat, add the remaining olive oil and sear meatballs for 3-4 minutes until golden brown on all sides. Remove from pan to a plate.
- In the same oil, sauté onion and garlic over medium heat until onions are translucent. Add the San Marzano tomatoes. Crush until desired consistency then add crushed red pepper, sugar, dried oregano, dried thyme, and season with salt and pepper. Simmer for 15 minutes over medium heat.
- Add the meatballs to the tomato sauce. Cover and let the meatballs simmer in the sauce for another 30 minutes until cooked through and tender. Serve with pasta or eat with sauce and enjoy!
Notes
- Freeze the meatballs on a parchment lined sheet or tray for 1-2 hours before transferring into a freezer safe bag. This will help them from sticking together in the freezer.
- Once the sauce has cooled, I like to ladle it into freezer safe bags about halfway. I’ll lay them flat on a baking sheet or tray and flatten the sauce until it becomes a flat rectangle or square. I freeze them on the baking sheet or tray until they hold their shape before removing the sheet or tray.
Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.