Stuffed Shells with Ricotta and Ground Beef

Stuffed shells started appearing in my fridge every Sunday evening after I realized how few weeknight recipes actually reward you for doing the work in advance. Assemble the pan, cover it, refrigerate it — and dinner the next day is a 40-minute job with almost nothing to do except turn on the oven. Each jumbo shell gets packed with ground beef, whole-milk ricotta, and mozzarella, then bakes in marinara until the cheese is golden and the sauce has thickened around the sides of the dish.
What makes this version reliable is two things: the ratio of filling to egg, and the amount of sauce in the pan. Too much egg and the filling turns grainy. Not enough sauce underneath and the shells stick and dry out. Both are easy to get wrong the first time, and both have specific fixes built into this recipe.
The pasta shells also come out of the pot 2 minutes before the package says to. It sounds like a small detail until the first time you skip it and end up with split, collapsed shells by the time the dish comes out of the oven.
Why You’ll Love These Stuffed Shells
- The filling uses whole-milk ricotta, which stays creamy during baking rather than releasing water and thinning the sauce
- Ground beef adds enough substance that this works as a complete meal without anything extra on the side
- The entire dish can be assembled the night before and baked the next day with no change in texture or quality
- Each shell holds its shape during baking, so every person gets a clean, distinct serving rather than a pasta mess
- One 9×13 pan feeds six comfortably, which makes this a practical choice for a family dinner or casual guests
Ingredients You’ll Need

For the Ricotta Beef Filling
- 500g (1 lb) ground beef, 80/20 fat ratio — enough fat to keep the filling moist through the full bake without going greasy
- 425g (15 oz) whole-milk ricotta — do not substitute part-skim; it contains more water and the filling will come out watery
- 1½ cups (170g) shredded mozzarella, divided — half goes into the filling, half on top for the golden crust
- ½ cup (50g) freshly grated parmesan — adds a sharpness that balances the mild, creamy ricotta
- 2 large eggs — bind the filling so it holds its shape inside the shell during baking
- 3 garlic cloves, minced
- 1 tsp dried oregano
- ½ tsp dried basil
- ½ tsp fine salt
- ¼ tsp black pepper
- 2 tbsp fresh flat-leaf parsley, finely chopped — stirred in at the end to preserve the bright color
For the Sauce and Assembly
- 24 jumbo pasta shells (from a 340g / 12 oz box; cook a few extra in case some split during boiling)
- 700ml (24 oz) marinara sauce, divided
- 125ml (½ cup) water or beef broth — stirred into the top sauce to prevent it from over-reducing during the bake
Recipe Timing
| Timing Element | Duration |
|---|---|
| Prep Time | 25 minutes |
| Cook Time | 40 minutes |
| Total Time | 65 minutes |
Servings: 6 | Difficulty: Medium | Cuisine: Italian-American | Course: Main
How to Make Stuffed Shells: Step by Step
Step 1: Boil the pasta shells
Bring a large pot of generously salted water to a full rolling boil. Add the jumbo pasta shells and cook for 9 minutes, which is about 2 minutes less than most package directions.
The shells should bend easily when you pick one up but still feel slightly firm in the center. Drain them and spread in a single layer on a lightly oiled baking sheet so they cool without sticking together.
Why this works: Undercooking the shells means they finish in the oven while absorbing flavor from the sauce. Fully cooked shells go into the oven already soft and come out splitting and falling apart.
⚠️ Food Safety: Salt the cooking water well, at least 1 tsp per liter of water. Well-salted water seasons the pasta from the inside, which no amount of sauce added later can replicate.

Step 2: Brown the ground beef
Heat a large skillet over medium-high heat until the pan feels hot when you hold your hand 5cm above the surface. Add the ground beef and break it up with a wooden spoon, cooking for 6 to 8 minutes until no pink remains and the edges of the meat have browned.
Add the minced garlic in the last 2 minutes and stir frequently so it softens without burning. Drain the excess fat from the pan, then spread the cooked beef out on a plate and let it cool for at least 10 minutes before mixing the filling.
⚠️ Food Safety: Ground beef must reach an internal temperature of 75°C (165°F) before it comes off the heat. Use a digital thermometer to confirm. Adding hot beef to the ricotta and eggs immediately will start cooking the eggs before the dish goes into the oven, which makes the filling grainy and curdled.
Why this works: Browning the beef over high heat creates flavor on the surface of the meat that you cannot get from lower-temperature cooking. Those browned bits distributed through the filling add depth to every bite.
Step 3: Build the filling
In a large bowl, combine the cooled ground beef, ricotta, ¾ cup of the shredded mozzarella, parmesan, eggs, oregano, basil, salt, and pepper. Stir until everything is evenly combined.
The mixture should look thick and creamy, not wet or loose. If it seems thin, the ricotta may have had some surface moisture — stir for another minute and it should tighten up. Fold in the chopped parsley last.
Why this works: Parsley folded in after mixing stays bright green during baking rather than turning the dull grey-green you get when it sits in a hot mixture for too long.

Step 4: Prepare the baking dish
Preheat your oven to 190°C (375°F). Pour 350ml (about 1½ cups) of the marinara sauce into the bottom of a 9×13 inch baking dish and spread it into an even layer.
Stir 125ml of water or beef broth into the remaining sauce to thin it slightly. This is the sauce that goes over the top of the filled shells.
Why this works: A layer of sauce on the bottom of the pan creates a barrier between the pasta and the hot dish, preventing the shells from scorching and sticking to the base during 40 minutes of baking.
Step 5: Fill and arrange the shells
Hold each shell open in one hand and spoon the filling in with a regular dinner spoon or a small cookie scoop. Each shell takes about 2 heaped tablespoons.
Place each stuffed shell open-side up in the prepared dish. Pack them snugly together in a single layer so they support each other and stay upright during baking. Do not stack.
Step 6: Add sauce and cheese
Pour the remaining thinned marinara sauce evenly over all the shells, making sure every shell has some coverage so none of the edges dry out.
Scatter the remaining ¾ cup of shredded mozzarella across the top and cover the dish tightly with a sheet of aluminum foil.

Step 7: Bake, uncover, and rest
Bake the covered dish at 190°C (375°F) for 30 minutes. Remove the foil and continue baking for 10 to 12 minutes until the cheese on top is melted and showing golden spots in places, and the sauce around the edges of the dish is actively bubbling.
Rest the dish uncovered for 5 minutes before serving. The filling firms up slightly as it rests, which means the shells hold together better when you scoop them out.
Why this works: Baking covered for the first 30 minutes traps steam, which keeps the shells moist and prevents the top layer of cheese from drying out before the filling has had time to heat through. Uncovering at the end gives the cheese the direct heat it needs to brown.

Common Mistakes to Avoid
Using part-skim ricotta
The higher water content in part-skim ricotta is released during baking, which thins out the sauce and leaves the filling sitting in liquid rather than staying creamy. Whole-milk ricotta stays stable in the oven. If whole-milk is not available, drain part-skim in a cheesecloth or fine mesh strainer for 30 minutes before using.
Cooking the pasta to full doneness before baking
Fully cooked shells that then spend 40 minutes in a hot oven come out soft and split. Pull the shells 2 minutes before the package says and they will reach the right texture precisely when the dish comes out.
Skipping the extra liquid in the top sauce
Marinara reduces significantly over 40 minutes in the oven. Without a splash of water or broth stirred in, the sauce becomes overly concentrated and the shells near the edges of the dish can dry out. The extra liquid costs nothing and prevents the problem entirely.
Filling the shells while the beef is still hot
Hot meat begins cooking the eggs in the filling before the dish even goes into the oven. The result is a grainy, curdled filling instead of a smooth, creamy one. Ten minutes of cooling on a plate solves it.
Variations and Substitutions
Spinach and ricotta (meat-free): Leave out the ground beef and add 280g (10 oz) of frozen spinach, thawed and squeezed completely dry, to the ricotta mixture. Press as much water out of the spinach as possible — any excess moisture will thin the filling. Bake time and all other quantities stay the same.
Cottage cheese instead of ricotta: Full-fat cottage cheese replaces ricotta in equal amounts, but blend it smooth before using. Left as-is, the curds give the filling an uneven texture. The flavor is noticeably milder than ricotta, so add an extra pinch of salt and a bit more parmesan to compensate. These stuffed shells come out slightly lighter in texture but still hold their shape well through baking.
Spiced beef filling: Stir 1 tsp of ground cumin and ½ tsp of smoked paprika into the beef while it cooks. It shifts the flavor in a warmer direction that works well with a garlicky marinara or a simple tomato and onion sauce.
What to Serve With Stuffed Shells
Garlic bread — The pools of sauce that collect at the bottom of the dish are too good to leave behind, and garlic bread is the most practical tool for getting at them.
A green salad — Stuffed shells are a rich, filling dish. Something light alongside keeps the meal balanced. Chopped romaine with a simple lemon and olive oil dressing takes five minutes and cuts through the richness well.
Roasted vegetables — Zucchini, bell peppers, or broccoli roasted at 200°C until caramelized can go into the oven on a separate rack at the same time as the shells and will be ready to serve alongside them.
Tomato or lentil soup as a starter — A small bowl of soup before the main turns this into a full spread without requiring much additional work.

Storage, Reheating and Make-Ahead
Fridge: Transfer leftover stuffed shells to an airtight container and refrigerate for up to 4 days. The sauce keeps the pasta from drying, so they hold up well through day 3 or 4.
Freezer: You can freeze stuffed shells either before or after baking. For unbaked: assemble the dish fully, cover with two tight layers of foil, and freeze for up to 3 months. Thaw overnight in the fridge before baking as normal. For already-baked: cool completely, portion into a freezer-safe container, and freeze for up to 3 months. Thaw overnight before reheating.
Reheat: Place shells in an oven-safe dish with a tablespoon of water added, cover with foil, and reheat at 175°C (350°F) for 20 to 25 minutes until heated through. Single portions reheat well in a microwave on medium power for 2 to 3 minutes with a spoonful of water added to the dish to keep them moist.
Make-ahead: Assemble the complete dish up to 24 hours in advance, cover tightly with foil, and refrigerate unbaked. When baking straight from the fridge, add 10 to 15 minutes to the initial covered bake time and confirm the center of the filling has reached 75°C (165°F) before serving.
Allergen Information
Contains gluten (pasta shells). For a gluten-free version, try substituting certified gluten-free jumbo pasta shells, which are available at most large supermarkets and behave similarly during boiling.
Contains dairy (ricotta, mozzarella, parmesan). To make this dairy-free, try a cashew-based ricotta for the filling and a plant-based mozzarella for the topping. The filling texture will be slightly less creamy than the original.
Contains eggs. The eggs bind the filling and hold it together inside the shell during baking. To make this egg-free, try a slurry of 2 tbsp cornstarch mixed with 2 tbsp water as a binder, though the texture of the filling will differ.
Nutrition Information
Per serving (based on 6 servings):
| Nutrient | Per Serving |
|---|---|
| Calories | 520 kcal |
| Protein | 34 g |
| Total Carbohydrates | 38 g |
| Dietary Fiber | 3 g |
| Total Sugars | 7 g |
| Total Fat | 24 g |
| Saturated Fat | 12 g |
| Sodium | 890 mg |
| Cholesterol | 145 mg |
| Potassium | 620 mg |
| Calcium | 380 mg |
| Iron | 4 mg |
“Nutritional values are estimates only and may vary based on specific ingredients, brands, and portion sizes used. For precise dietary needs, consult a registered dietitian.”
Frequently Asked Questions
Can stuffed shells be made ahead of time?
Yes. Assemble the dish completely, cover tightly with foil, and refrigerate for up to 24 hours before baking. When baking from cold, add 10 to 15 minutes to the initial covered bake time. A thermometer inserted into the center of the filling should read 75°C (165°F) before you take the dish out.
Why do stuffed shells come out watery?
The most common cause is part-skim ricotta, which releases a significant amount of water during baking. Switching to whole-milk ricotta fixes this in most cases. If only part-skim is available, drain it through a fine mesh strainer for 30 minutes beforehand. Overly thin marinara sauce can also contribute; simmer it on the stovetop for 10 minutes before using if it looks watery straight out of the jar.
Can you freeze stuffed shells before baking?
Yes. Assemble the dish, cover with two layers of foil, and freeze for up to 3 months. Thaw in the fridge overnight before baking. Do not bake straight from frozen — the outside overcooks before the center has time to heat through.
Can I use cottage cheese instead of ricotta?
Full-fat cottage cheese works, but blend it smooth first. Left as-is, the curds give the filling a lumpy texture. The flavor is milder than ricotta, so increase the parmesan slightly and add an extra pinch of salt to compensate.
How do I know when stuffed shells are done baking?
The cheese on top should be melted and showing golden spots, and the sauce around the edges of the dish should be actively bubbling. For certainty, a digital thermometer inserted into the center of the filling should read at least 75°C (165°F). Per USDA safe temperature guidelines, this is the minimum safe internal temperature for a cooked egg-based filling.
What size pasta shells do I use?
You need jumbo shells, typically labeled “jumbo pasta shells” or “conchiglioni” on the packaging. Regular shells are too small to fill. Most boxes contain 30 to 35 shells; cook a few extras in case some split or break during boiling.
How long do leftover stuffed shells last in the fridge?
Stored in an airtight container, they keep well for up to 4 days. The pasta softens slightly by day 4, but the filling stays intact and the flavor holds up. Reheat covered in the oven with a splash of water added, or in the microwave on medium power.
Conclusion
Stuffed shells are more forgiving than they look, especially once you understand where they tend to go wrong: the ricotta choice, the pasta cook time, and keeping enough liquid in the sauce. Get those three things right and the dish mostly handles itself. The make-ahead option is what actually makes this recipe practical for a busy week — 25 minutes of work one evening, then a proper sit-down dinner the next with almost no active effort. Use whole-milk ricotta, pull the pasta a couple of minutes early, and add that splash of water to the top sauce.
Stuffed Shells: Recipe Card

Stuffed Shells with Ricotta and Ground Beef
Ingredients
Method
- Bring a large pot of well-salted water to a full rolling boil. Cook the jumbo shells for 9 minutes (2 minutes less than package directions), drain, and spread on an oiled baking sheet to cool.
- Heat a large skillet over medium-high heat. Cook the ground beef, breaking it up, for 6 to 8 minutes until no pink remains and the edges are browned. Add the garlic in the last 2 minutes. Drain fat and spread the beef on a plate to cool for 10 minutes. Confirm internal temperature has reached 75°C (165°F).
- In a large bowl, combine the cooled beef, ricotta, ¾ cup mozzarella, parmesan, eggs, oregano, basil, salt, and pepper. Stir until evenly combined. Fold in the parsley.
- Preheat the oven to 190°C (375°F). Spread 350ml of marinara evenly across the bottom of a 9×13 inch baking dish. Stir 125ml water or broth into the remaining sauce.
- Fill each shell with about 2 heaped tablespoons of filling. Arrange open-side up in the dish, packed snugly in a single layer.
- Pour remaining sauce evenly over the shells. Scatter the remaining ¾ cup mozzarella on top. Cover tightly with aluminum foil.
- Bake covered for 30 minutes. Remove the foil and bake for 10 to 12 more minutes until the cheese is golden in spots and the sauce is actively bubbling at the edges. Rest for 5 minutes before serving.
