Learning how to make meatballs from scratch takes about 15 minutes of hands on work, and the payoff is a tray of juicy, well seasoned beef meatballs that beat anything from the freezer aisle. This version uses plain ground beef, minced onion, a little milk soaked breadcrumb, an egg, Dijon mustard, and Parmesan, so the flavor is savory without being heavy.
Roll them small, about 1 1/2 inches wide, and they cook through in roughly 20 minutes in a hot oven or 10 to 12 minutes in a skillet. Pile them over spaghetti, tuck them into sandwiches, or simmer them in your favorite sauce.
Table of Contents
Why This Meatballs from Scratch Recipe Works
Meatballs go wrong in two ways: they turn out dry and dense, or they fall apart in the pan. This recipe avoids both with a simple formula. The breadcrumbs soak up milk first, which creates a soft binder that keeps moisture inside the meat. The egg holds everything together, and the finely minced onion adds juiciness without leaving large chunks that crack the surface.
The seasoning is intentionally simple: salt, pepper, garlic powder, Dijon, parsley, and Parmesan. That balance tastes good on its own and still plays well with tomato sauce, gravy, or a glaze. A small meatball also browns faster, so you get more crust per bite and a tender center.
Ingredients for Meatballs from Scratch
- 1 pound 90% lean ground beef
- 1/2 medium onion, finely minced (about 1/2 cup)
- 1/3 cup plain dry breadcrumbs
- 2 1/2 tablespoons milk
- 1 large egg
- 1 teaspoon Dijon mustard
- 1/4 teaspoon salt
- 1/4 teaspoon garlic powder
- 1/4 teaspoon ground black pepper
- 2 tablespoons chopped fresh parsley (or 1 teaspoon dried)
- 1/4 cup finely shredded Parmesan cheese
- 1 tablespoon olive oil, only for the skillet method
Ground beef. Choose 90% lean beef for meatballs that stay juicy without leaving a pool of grease on the tray. If you prefer extra richness, 85% lean also works, though the meatballs will shrink a bit more.
Onion. Mince it as finely as you can, almost to a paste, so it melts into the meat. Large pieces create weak spots where the meatball can split.
Breadcrumbs and milk. Stir them together for a minute before mixing with the meat. This soaked mixture keeps the texture soft and tender.
Egg. One egg is enough to bind a pound of meat. More makes the meatballs bouncy.
Dijon and Parmesan. Dijon adds a gentle tang, and Parmesan brings salty, nutty depth. Because the cheese is already salty, the recipe uses only a small amount of added salt.
Parsley. Fresh parsley gives a green, clean flavor. Dried parsley works in a pinch, just use less.
How to Make Meatballs from Scratch
1. Heat the oven or pan. For the oven method, preheat to 400 degrees F and line a rimmed baking sheet with parchment. For the skillet method, keep the oil nearby and wait to heat the pan until the meatballs are rolled.
2. Soak the breadcrumbs. Stir the breadcrumbs and milk together in a large bowl and let them sit for 2 minutes until the crumbs look like damp sand.
3. Mix gently. Add the beef, onion, egg, Dijon, salt, garlic powder, pepper, parsley, and Parmesan. Mix with your hands just until combined and no streaks of egg remain. Overmixing makes the texture tight and rubbery.
4. Roll evenly. Scoop about 1 tablespoon of mixture and roll it between damp palms into a ball roughly 1 1/2 inches wide. You should get about 22 meatballs. Even size means even cooking.
5. Bake or sear. Bake the meatballs on the lined sheet for 18 to 22 minutes, until browned and the center reads 160 degrees F. To pan cook, heat the oil in a large skillet over medium high heat and brown the meatballs on all sides for 10 to 12 minutes, turning every couple of minutes.
6. Rest and serve. Let the meatballs rest for 3 minutes so the juices settle, then serve warm or add them to sauce.
How to Serve Meatballs from Scratch
Spoon the meatballs over spaghetti with marinara, or tuck them into toasted rolls with melted cheese for a quick sub. They also work as gathering bites on toothpicks with a dipping sauce. For more meatball inspiration, try Italian meatballs with a family style sauce, a batch of classic Italian meatballs, a sticky pan of honey garlic meatballs, or creamy easy Swedish meatballs served over noodles.
How to Store and Reheat Meatballs from Scratch
Cool the meatballs and refrigerate within 2 hours of cooking. Store them in an airtight container for 3 to 4 days. To freeze, spread cooled meatballs on a tray until firm, move them to a freezer bag, and keep them for up to 3 months. Thaw overnight in the refrigerator. Reheat in a covered dish in a hot oven at 350 degrees F or simmer them in sauce until they reach 165 degrees F in the center.
Tips and Variations for Meatballs from Scratch
Use a scoop. A tablespoon cookie scoop keeps every meatball the same size, which saves time and guarantees even cooking.
Chill if the mixture is soft. If the mixture feels sticky, refrigerate it for 15 minutes before rolling.
Check the temperature. Ground beef is safe at 160 degrees F, and the FDA safe minimum temperature chart lists that figure for ground meat. A thermometer beats guessing by color.
Swap the protein. Ground turkey or chicken works for a lighter meatball. Poultry needs to reach 165 degrees F, and a teaspoon of olive oil in the mix helps keep it moist.
Make them smaller. Roll them to 1 inch for appetizers and shorten the bake time to about 14 minutes.
Add herbs. Italian seasoning, minced garlic, or a pinch of red pepper flakes change the flavor quickly.
Brown first for extra flavor. Sear the meatballs in a skillet for 2 minutes per side, then finish them in the oven for the ideal crust.
Cook them in sauce. Raw meatballs can simmer directly in tomato sauce for about 20 minutes until they reach 160 degrees F, but browning first adds more flavor.
Frequently Asked Questions About Meatballs from Scratch
How do you make meatballs from scratch that stay juicy?
Soak the breadcrumbs in milk, use 90% lean beef, and mix only until combined. A finely minced onion also adds moisture, and pulling the meatballs at 160 degrees F prevents drying.
How long do meatballs from scratch take to cook?
Meatballs rolled to 1 1/2 inches bake at 400 degrees F in 18 to 22 minutes, or brown in a skillet in 10 to 12 minutes.
Can you freeze meatballs from scratch before cooking?
Yes. Shape them, freeze them on a tray until firm, and store them in a freezer bag. Bake from frozen, adding about 8 to 10 minutes, and check for 160 degrees F.
Why do my meatballs fall apart?
Usually the mixture is too wet or lacks a binder. Measure the milk, include the egg, and chill the mixture for 15 minutes if it feels sticky.
Can I make these without breadcrumbs?
Yes. Use the same amount of rolled oats or crushed crackers, and let them soak in the milk first.
How to Make Meatballs from Scratch
Equipment
- Large skillet
- Baking sheet
- Mixing bowl
Ingredients
Main Ingredients
- 1 lb 90% lean ground beef
- ½ medium onion finely minced, about 1/2 cup
- ⅓ cup plain dry breadcrumbs
- 2 ½ tbsp milk
- 1 large egg
- 1 tsp Dijon mustard
- ¼ tsp salt
- ¼ tsp garlic powder
- ¼ tsp ground black pepper
- 2 tbsp fresh parsley finely chopped, or 1 teaspoon dried
- ¼ cup shredded Parmesan cheese finely shredded
- 1 tbsp olive oil only for the skillet method
Instructions
Cooking
- Prep the pan. Heat the oven to 400 degrees F and line a rimmed sheet pan with parchment paper.
- Make the panade. Combine the breadcrumbs and milk in a large bowl and wait 2 minutes, until the crumbs are soft and damp.
- Combine. Add the beef, onion, egg, Dijon, salt, garlic powder, pepper, parsley, and Parmesan. Fold with your hands for about 30 seconds, only until the mixture holds together.
- Shape. Portion the mixture by the tablespoon and roll each portion into a smooth 1 1/2 inch ball. Arrange them 1 inch apart on the sheet.
- Cook. Bake for 18 to 22 minutes until browned and 160 degrees F inside. For the skillet method, brown in 1 tablespoon hot oil over medium high heat for 10 to 12 minutes, turning often.
- Rest. Cool the meatballs for 3 minutes before serving or tossing them in sauce.









