One-Pot Ground Beef Pasta — Easy, Hearty & Ready in About 25 Minutes
Table of Contents
I used to make this with nothing more than ground beef, pasta, and whatever canned tomatoes were in the pantry. It was fast, but it also left me hungry again later.
The better version wasn’t complicated: 90/10 beef, lower-sodium broth, no-salt-added tomatoes, and a couple handfuls of spinach stirred in at the end. Everything still cooks in one skillet, and dinner is on the table in about 25 minutes.
This isn’t a diet recipe. It’s just a normal, satisfying dinner that happens to be built a little smarter than the version most people default to.
Quick recipe: Serves 4 · Prep 5 min · Cook 20 min · Total 25 min · 90/10 ground beef, penne or rotini, spinach, no-salt-added diced tomatoes, low-sodium beef broth.
Want the reasoning behind the ingredient choices first? Keep reading.
Why This Version Works
Why you’ll love this one:
- One skillet, no separate pasta pot to drain
- Real vegetables, not just canned tomato
- Sodium is in your hands, not the can’s
- About 25 minutes from start to finish
The original one-pot method is genuinely good technique: brown the beef, then simmer the pasta directly in the broth and tomatoes so its starch thickens the sauce and you can skip a separate pot. That part doesn’t need fixing. What needed fixing was what was actually going into the pot.
I use 90/10 beef because it gives the dish enough richness without leaving a lot of excess fat in the pan. Swapping from 80/20 to 90/10 doesn’t change the cook time or really the flavor once everything’s simmered with tomatoes and seasoning, and it means less fat to drain off before the rest of the ingredients go in.
Low-sodium broth and no-salt-added tomatoes. Regular broth and regular canned tomatoes both bring a lot of sodium on their own, and they stack. Using the lower-sodium versions of both gives you much more control over the final sodium level, since you’re adjusting the added salt yourself rather than starting from whatever the can and carton already built in.
Actual vegetables, not just tomatoes. The original version has meat, pasta, and canned tomato — no real vegetable presence. Two cups of baby spinach stirred in at the end adds vegetables without requiring another pot or significantly extending the cooking time.
Ingredients
Serves 4
- 1 lb (450g) lean ground beef, 90/10
- 2 cups (about 200g) pasta — penne or rotini work best for holding the sauce
- 1 can (14.5oz) no-salt-added diced tomatoes
- 2 cups low-sodium beef broth
- 2 cups baby spinach
- 1 tsp Italian seasoning
- ½ tsp garlic powder
- Salt and black pepper, to taste
- Grated Parmesan, for serving (optional)

How to Make It
1. Brown the beef. In a large, deep skillet over medium-high heat, brown the ground beef, breaking it up as you go, about 5–6 minutes. If there’s more than a thin layer of rendered fat left in the pan, drain it before moving on.

2. Add everything except the vegetables. Stir in the pasta, diced tomatoes (with their juice), beef broth, Italian seasoning, and garlic powder.

3. Cover and simmer. Bring to a simmer, then cover and cook, stirring once or twice, until the pasta is tender and has absorbed most of the liquid. Go by your pasta’s package timing as a guide, and start checking about 2 minutes before the lower end of that range — for the penne and rotini I tested this with, that landed at about 12–14 minutes, bringing total cook time (browning through spinach) to about 20 minutes. The starch from the pasta is what thickens everything — no separate draining, no separate pot.
4. Stir in the spinach. Add it in the last 2 minutes, just until wilted.

5. Season and serve. Taste and adjust salt and pepper — since you started with low-sodium broth and no-salt-added tomatoes, you’ll likely want more than you’d expect. Top with Parmesan if using.

What I Tested
80/20 vs. 90/10 beef. I made the recipe with both, keeping every other ingredient and the cooking time the same. The 80/20 version was richer, but also left noticeably more rendered fat in the skillet. Once the tomatoes, broth, and seasoning were added, the flavor difference was smaller than I expected, so I kept 90/10 for the final recipe.
Regular broth/tomatoes vs. low-sodium and no-salt-added versions. The lower-sodium version needed noticeably more added salt at the end to taste fully seasoned — which is exactly the point. It puts the salt decision in your hands instead of the can’s.
Spinach added at the start vs. the last 2 minutes. Added at the start, it overcooked and lost most of its texture by the time the pasta was done. Added at the end, it wilted perfectly without going slimy.
2 cups broth vs. 2¼ cups. With 2 cups measured in liquid measuring cups, the pasta absorbed the liquid fully and left a nicely thickened sauce clinging to everything. At 2¼ cups, it stayed noticeably wetter even after the full simmer time — better if you like it saucier, but the 2-cup version was what I kept coming back to.
The 3 Things That Actually Matter
Drain the fat if there’s more than a thin layer in the pan. With 90/10 beef there usually isn’t much, but if there is, draining it keeps the dish from turning greasy once everything else is added.
Don’t skip stirring during the simmer. Since the pasta is cooking directly in the liquid rather than a big pot of boiling water, it can stick to the bottom of the pan if you walk away completely. A stir once or twice during the simmer is enough.
Add quick-cooking vegetables near the end, and plan ahead for firmer ones. Spinach and other quick-wilting greens go in during the last 2 minutes. Firmer vegetables like the bell pepper variation below, carrots, or broccoli need more time and should go in earlier.
Nutrition
Calculated from the specific ingredient amounts listed in the recipe (90/10 beef, spinach, no-salt-added tomatoes, low-sodium broth), using standard USDA nutrient values. Doesn’t include optional Parmesan, since no fixed quantity is specified, or salt added to taste. Actual values will vary by brand.
| Nutrient | Per Serving |
|---|---|
| Calories | ~410 kcal |
| Protein | ~31g |
| Carbohydrates | ~43g |
| Fat | ~12g |
| Fiber | ~3g |
| Sodium | ~180mg (before salt added to taste) |
That sodium figure is from the ingredients alone — low-sodium broth and no-salt-added tomatoes still contain some sodium, they’re just not adding as much on top of what you control yourself. Expect the real number to be higher once you salt to taste, which is exactly the tradeoff: you’re deciding how much, rather than the can deciding for you.
The bell pepper variation will change the nutrition slightly.
Variations
Whole-wheat or chickpea pasta. Both can work here, but don’t assume they’ll need exactly the same amount of liquid or cooking time as regular pasta — chickpea and lentil pastas in particular behave differently. Start checking a couple minutes early and add a splash of broth or water if it looks like it needs more time or liquid.
Ground turkey instead of beef. Use 93/7 lean ground turkey in the same quantity. It’s milder, so you may want to bump the Italian seasoning slightly.
More vegetables. Diced zucchini or mushrooms both work well added alongside the spinach in the last few minutes — just don’t add anything watery too early, or it’ll thin out the sauce.
Bell pepper instead of spinach. Dice 1 bell pepper and stir it in about 2 minutes earlier than you would the spinach, since it takes longer to soften. See the nutrition note above.
Spicier. A pinch of red pepper flakes with the Italian seasoning, or a diced jalapeño added with the beef.
More Weeknight Dinners
If this becomes a regular in your rotation, a couple others worth adding:
- Sheet-Pan Mediterranean Chicken Thighs — another one-pan, tested-and-tweaked dinner, ready in about 50 minutes.
- Beeft stew — the slower, richer relative of this dish, for when you have a bit more time.
FAQ
What pan should I use? A large, deep skillet — at least 12 inches, with enough depth that the pasta and liquid don’t crowd the rim. This recipe depends on it; a shallow skillet makes the simmering step messy and uneven.
Can I use pre-cooked ground beef? Yes — skip the browning step and add the cooked beef with the pasta, tomatoes, and broth in step 2. Since you’re not rendering fresh fat, there’s nothing to drain. Start checking the pasta at the early end of its package cooking range.
Can I make this without spinach? Yes, it’s easy to leave out entirely if you’d rather keep this simple, or swap in the bell pepper variation below if you still want a vegetable in the mix.
Can I use a different pasta shape? Yes — go by that pasta’s package timing as your guide, checking a couple minutes before the low end of the range. Very thin pasta (like angel hair) can turn mushy in this method, so I’d stick with medium shapes like penne, rotini, or shells.
Why is my sauce too thin, or too thick? Too thin usually means the pasta needs another minute or two uncovered to absorb more liquid. Too thick means it went a little long — a splash of extra broth or water stirred in brings it back.
Can I make this ahead and reheat it? Yes, though the pasta will continue absorbing liquid as it sits. Add a splash of broth or water when reheating to loosen it back up.
Is this recipe freezer-friendly? It freezes reasonably well, though pasta texture softens somewhat after freezing and reheating. If you’re planning to freeze a batch, slightly undercooking the pasta (pull it a minute early) helps it hold up better later.
Can I use ground chicken instead of beef? Yes — ground chicken works well here and is a leaner swap than even 90/10 beef. It has less natural fat to render, so you likely won’t need to drain anything, and the flavor is milder, so I’d lean a little heavier on the Italian seasoning and garlic powder to compensate.
Can I leave out the tomatoes? You can, using extra broth in their place, but you’ll lose some of the acidity and color that balances the dish. If you skip them, a squeeze of lemon or splash of vinegar at the end helps replace some of that brightness.
Recipe card
Servings: 4
Prep Time: 5 minutes
Cook Time: 20 minutes
Total Time: 25 minutes
Course: Main Course
Cuisine: American / Italian-inspired
Ingredients
- 1 lb (450g) 90/10 lean ground beef
- 2 cups (about 200g) dry penne or rotini pasta
- 1 can (14.5 oz) no-salt-added diced tomatoes, with juices
- 2 cups low-sodium beef broth
- 2 cups baby spinach
- 1 teaspoon Italian seasoning
- ½ teaspoon garlic powder
- Salt, to taste
- Black pepper, to taste
- Grated Parmesan, for serving (optional)
Instructions
1. Brown the beef
Heat a large, deep 12-inch skillet over medium-high heat. Add the ground beef and cook for about 5–6 minutes, breaking it into small pieces as it browns.
If there is more than a thin layer of rendered fat in the skillet, drain the excess.
2. Add the pasta and liquids
Add the dry pasta, diced tomatoes with their juices, beef broth, Italian seasoning, and garlic powder. Stir to combine.
3. Cover and simmer
Bring the mixture to a simmer, then cover and cook until the pasta is tender and most of the liquid has been absorbed, stirring once or twice during cooking.
For penne or rotini, start checking about 2 minutes before the lower end of the pasta package’s cooking range. In testing, the pasta took about 12–14 minutes to cook after reaching a simmer.
If the pasta is still firm and the skillet looks dry, add a small splash of broth or water. If the sauce is too loose once the pasta is tender, cook uncovered for another minute or two.
4. Add the spinach
Stir in the baby spinach during the final 2 minutes of cooking. Continue stirring until the spinach is wilted and incorporated into the pasta.
5. Season and serve
Taste and season with salt and black pepper. Because the broth and tomatoes are lower in sodium, you may need more salt than you expect.
Serve immediately with grated Parmesan, if desired.

