These stuffed shells with meat are filled with seasoned ground beef, creamy ricotta, mozzarella and Parmesan. They bake in marinara until the sauce bubbles around the edges and the cheese melts over the top. The beef goes right into the filling, so every shell gets a generous, savory center rather than cheese in one bite and meat in another.
Let the beef get properly browned before it goes into the ricotta, and pull the shells from the water while they’re still a little firm. They’ll be easier to fill, and they’ll finish cooking in the sauce without turning mushy.
The recipe makes about 24 stuffed shells—enough for six hearty servings or eight with sides. You can also assemble the casserole a day ahead, which is handy when you’d rather have most of dinner dealt with before the evening gets busy.
Stuffed Shells with Meat Recipe
Ingredients
Pasta and sauce
- 28 jumbo pasta shells, allowing a few extras in case some break
- 24 oz / 680 g marinara sauce
- 2–4 tablespoons / 30–60 ml water, only if needed to loosen a very thick sauce
Beef and ricotta filling
- 2 teaspoons / 10 ml olive oil
- ½ medium yellow onion, finely chopped (about ½ cup / 75 g)
- 1 lb / 454 g ground beef, preferably 90% lean
- 3 garlic cloves, minced
- 15 oz / 425 g whole-milk ricotta, drained briefly if visibly watery
- 8 oz / 225 g low-moisture mozzarella, shredded and divided
- ½ cup / about 45 g finely grated Parmesan
- 1 large egg
- 1½ teaspoons Italian seasoning
- ¾ teaspoon fine sea salt, divided, plus more for the pasta water
- ½ teaspoon freshly ground black pepper
- 2 tablespoons chopped fresh parsley, optional
- ¼ teaspoon crushed red pepper flakes, optional
For the beef, 90% lean gives you plenty of flavor without producing as much rendered fat as a fattier blend. An 85% lean package works too. Use low-moisture mozzarella for the filling and topping. Freshly shredded melts especially well, but a bag of pre-shredded mozzarella is completely fine here.
Because the sauce flavors every shell, use a marinara you already enjoy. Jarred sauce keeps dinner simple; our homemade marinara sauce is another option when you want to make the sauce too.
If the marinara is very thick, loosen it with a splash of water. If it’s unusually thin, simmer it briefly until it clings lightly to a spoon.
Equipment
- 9×13-inch / 23×33 cm baking dish
- Large pot and colander
- Tray or large plate for the cooked shells
- Large skillet
- Aluminum foil
- Large mixing bowl
- Large spoon or 2-tablespoon scoop, optional
- Instant-read thermometer, optional
How to Make Stuffed Shells with Meat
1. Prepare the baking dish
Heat the oven to 375°F / 190°C. Spread about 1 cup of marinara over the bottom of a 9×13-inch / 23×33 cm baking dish. Keep the remaining sauce for the assembled shells.
2. Cook the shells until bendable, not tender
Bring a large pot of well-salted water to a boil. Add the 28 jumbo shells and start checking them about 2 minutes before the shortest cooking time listed on the package. Use their texture as the final guide: a shell should open without cracking but still feel distinctly firm.
Drain immediately and spread the shells in a single layer on a tray or large plate. Separate any that begin sticking together. They’ll finish cooking once the casserole goes into the oven.

3. Brown and season the beef
Heat the 2 teaspoons / 10 ml olive oil in a large skillet over medium heat. Add the onion and cook for 3–4 minutes, until softened.
Add the ground beef and break it into small crumbles. Let the released liquid cook away, raising the heat to medium-high if needed. If a large pool of rendered fat remains, spoon or drain off the excess. Then let some of the crumbles sit against the skillet long enough to develop browned edges.

Reduce the heat to medium. Add the garlic, Italian seasoning, ½ teaspoon salt, black pepper and optional red pepper flakes. Cook for another 30–60 seconds, just until you can smell the garlic. The beef should reach 160°F / 71°C before it comes off the heat.
Taste a small piece of the cooked beef and adjust the seasoning now, before it goes into the ricotta mixture. Once the filling contains raw egg, don’t taste it. Transfer the beef to a bowl or plate and let it cool until warm, not steaming hot.
4. Mix the beef and ricotta filling
In a large bowl, combine the ricotta, 4 oz / 113 g mozzarella, Parmesan, egg and remaining ¼ teaspoon salt. Add the parsley if using, then fold in the cooled beef. The mixture should be creamy but thick enough to mound on a spoon.

5. Fill the shells evenly
Fill about 24 intact shells with roughly 2 heaping tablespoons of filling each, adding more to any especially large shells. A 2-tablespoon scoop makes this quicker if you have one.
There’s an easy way to avoid beautifully overstuffing the first six and running short at the end. Mentally divide the filling into four portions, then use about one portion for every six shells. They don’t need to look identical. Fill them generously without forcing the pasta open.

6. Add the sauce and mozzarella
Arrange the filled shells open side up over the marinara. Spoon the remaining sauce around them and over any exposed pasta edges, then scatter the remaining 4 oz / 113 g mozzarella across the top.
It’s fine to leave the ridges visible. Just make sure the exposed pasta isn’t sitting completely dry, since those edges are the first to harden in the oven.

7. Bake covered, then uncover
Cover the dish with foil, tenting it above the mozzarella but sealing it around the rim. Bake for 25 minutes, then remove the foil and bake for another 5–10 minutes. The sauce should be bubbling around the shells, with the mozzarella melted across the tops and catching some color in spots.

Check one of the shells near the middle of the casserole instead of judging doneness only by the bubbling edges. The pasta should be tender and the filling steaming hot all the way through. If you’re checking with a thermometer, the filling in a shell near the middle should reach 160°F / 71°C.

8. Rest before serving
Let the casserole stand for 10 minutes. It’ll still be plenty hot, but the shells will lift from the dish more cleanly and the filling will have a chance to settle.
Cut into one and you should find browned beef throughout the ricotta filling, with marinara tucked into the shell’s ridges and mozzarella melted over the top.

Getting the Meat and Ricotta Filling Right
How much beef and ricotta do you need?
For about 24 stuffed shells, use 1 lb / 454 g ground beef with 15 oz / 425 g ricotta. That gives you beef in every shell without making the filling dense or pushing out the ricotta. The egg helps the beef-and-ricotta mixture hold together once baked.
You can change the ratio, but adding more meat isn’t necessarily the best route to stronger beef flavor. Good browning and seasoning do more without crowding the ricotta out of the shell.

If you want the same meat, cheese and marinara combination without filling two dozen shells, our classic lasagna turns it into a different baked pasta dinner.
Should the meat go in the filling or the sauce?
Both work; the difference is where you want the beef. Mixing it with the ricotta gives every shell a substantial meat-and-cheese filling. Stirring it into the marinara keeps the inside more cheese-forward and spreads the beef around the pasta instead.

For the meat-sauce version, cook the beef as directed but stir it into the marinara instead. Fill the shells with the ricotta, mozzarella, Parmesan and egg mixture, then assemble and bake as above.
For a version without meat, our classic stuffed shells recipe keeps the filling focused on ricotta, mozzarella and Parmesan.
Troubleshooting Stuffed Shells with Meat
Why are my stuffed shells watery?
Watery stuffed shells usually come from loose ricotta, liquid left with the ground beef, wet vegetables, very thin marinara or pasta that was cooked too far before baking.
A loose filling is easiest to fix before the shells are stuffed. Drain visibly watery ricotta, make sure the skillet liquid has cooked away, and squeeze additions such as spinach extremely dry.
A casserole that simply looks wet when it first leaves the oven is different. Give it the full 10-minute rest before deciding it needs more heat. Some loose sauce around the shells is normal and will settle. Prolonged baking, however, can dry the pasta and make the ricotta grainy without solving the original problem.

Greasy filling
Too much rendered beef fat probably made it into the cheese mixture. Spoon or drain off an obvious pool of fat while browning the beef before folding it into the ricotta, especially when using a higher-fat ground beef.
Dry or grainy ricotta filling
Too much time in the oven is a common culprit. Whole-milk ricotta helps keep the filling tender, but prolonged heat can still dry it out. Start checking the shells near the end of the recommended baking window instead of extending the bake just because the surface still looks saucy.
Running short on filling
The first shells probably got more than their share. If you are still filling them, use the four-groups-of-six checkpoint for the remaining shells; otherwise, move some filling from the fullest shells into the emptier ones.
Why do stuffed shells tear?
They may have cooked too long or stuck together while cooling. Pull them from the water while they’re still firm, spread them out after draining and open each shell gently. The few extras in the pot are there for the occasional casualty.
Hard pasta edges
Exposed pasta probably didn’t have enough sauce or spent too long in dry oven heat. Spoon marinara over bare edges and keep the casserole covered for most of the bake. The short uncovered finish is enough to melt the cheese and give it some color.
Stuffed Shells with Meat Variations
Italian sausage or half beef, half sausage
For an all-sausage version, replace the beef with 1 lb / 454 g mild or hot Italian sausage. Or use ½ lb / 227 g each of ground beef and Italian sausage. This keeps the familiar beef flavor while adding some of the sausage’s extra seasoning and richness. Drain excess fat after browning, and go lightly with added salt until you’ve accounted for the seasoning already in the sausage.
Ground turkey
Replace the beef with 1 lb / 454 g ground turkey. Turkey is milder and often leaner, so season it well and cook away any liquid in the skillet before adding it to the cheese mixture. Ground poultry should reach 165°F / 74°C.
Beef, ricotta and spinach
Add about 5 oz / 140 g frozen chopped spinach, thawed and squeezed very dry. Water left in the spinach goes straight into the filling. If you want vegetables to be more than an add-in, our vegetable lasagna builds the dish around them from the start.

Make Ahead, Freeze and Reheat
Can I assemble stuffed shells the day before?
Yes. Assemble the casserole through the mozzarella topping, cover it and refrigerate promptly for up to 24 hours. That gets most of the work out of the way before dinner.

When baking straight from the refrigerator, allow roughly 10–15 extra minutes of covered baking time as a starting point. A very cold dish may need longer, so check a shell near the middle before uncovering for the final 5–10 minutes.
You can also make the beef-and-ricotta filling up to 24 hours ahead, refrigerate it promptly, then cook and fill the shells closer to baking time.
Can you freeze stuffed shells?
Yes. Bake the stuffed shells first, refrigerate them promptly until chilled, then cover tightly and freeze for up to 2–3 months for best quality.
Thaw the baked shells overnight in the refrigerator for the most even reheating. Individual baked portions can also be frozen separately when you don’t want to reheat the entire casserole.
How to store and reheat leftovers
Refrigerate leftovers promptly in a covered container and use them within 3–4 days. A spoonful of marinara helps if the pasta has dried slightly in the refrigerator.

For a larger refrigerated or thawed portion, cover and reheat at 350°F / 175°C for about 20–25 minutes as a starting point. Continue until the center reaches 165°F / 74°C. Individual portions can be loosely covered and reheated in the microwave until hot throughout.
How Many Stuffed Shells Per Person?
These stuffed shells are substantial enough to serve as the main dish. From one batch, plan on:
- 4 stuffed shells per person for 6 hearty servings.
- 3 stuffed shells per person for about 8 servings with sides.

What to Serve with Stuffed Shells
A cold, crunchy side works especially well against the hot casserole. Our broccoli salad brings crisp vegetables and a tangy dressing, while a simple green salad is an easy lighter option.
For something warm, green beans almondine adds lemon and toasted almonds without competing with the marinara. Roasted broccoli works too, and garlic bread is an easy choice when you want something for the sauce left on the plate.
Bring the casserole to the table while the mozzarella is still soft and stretchy, and spoon some of the marinara from the dish over each serving. Add something crisp or green alongside if you like. That’s really all these shells need.
