Ground Beef Meatballs with Rice, Made in One Skillet

Updated November 3, 2026

Total time
1 hr
prep 22 min · cook 38 min
Serves
4
portions as written
Safe temperature (USDA)
160°F / 71°C
check the thickest piece

Jump to recipe

Ground Beef Meatballs with Rice, Made in One Skillet

Ground beef meatballs with rice is a one-skillet dinner of browned, tender meatballs simmered with long-grain rice, tomatoes, broth, and herbs. The rice cooks in the same pan and soaks up the savory tomato juices, making this a cozy, practical meal with fewer dishes to wash.

Ingredients

  • 1 lb (454 g) ground beef, preferably 85% lean
  • 1/2 cup (55 g) plain breadcrumbs
  • 1 large egg (about 50 g without the shell)
  • 1/3 cup (80 ml) milk
  • 1/3 cup (50 g) finely grated yellow onion, for the meatballs
  • 2 garlic cloves (6 g), finely minced
  • 2 tbsp (8 g) chopped fresh parsley, plus extra to serve if desired
  • 1 tsp (6 g) fine salt, divided
  • 1/2 tsp (1 g) ground black pepper, divided
  • 1 tsp (2 g) paprika
  • 1 tbsp (15 ml) olive oil
  • 1 medium yellow onion (about 150 g), finely chopped
  • 1 tbsp (16 g) tomato paste
  • 1 can (14.5 oz/411 g) diced tomatoes, with their juices
  • 1 1/2 cups (277 g) uncooked long-grain white rice, rinsed and drained
  • 1 1/2 cups (355 ml) low-sodium beef broth
  • 1/2 tsp (1 g) dried oregano
  • 1 cup (145 g) frozen peas

Instructions

  1. Prepare the meatball mixture. In a large bowl, stir the breadcrumbs and milk together and let them stand for a minute while you measure the other ingredients. Add the ground beef, egg, grated onion, garlic, parsley, 1/2 teaspoon salt, 1/4 teaspoon pepper, and the paprika. Mix gently with your hands or a fork just until evenly combined. Overmixing can make the meatballs dense.
  2. Shape the meatballs. Form the mixture into 16 meatballs, about 1 1/2 inches (4 cm) wide. Set them on a plate as you work. If the mixture sticks, lightly dampen your hands; avoid adding extra breadcrumbs unless the mixture is genuinely too loose to shape, since too much can make the finished meatballs dry.
  3. Brown the meatballs. Heat the olive oil in a large, deep skillet or sauté pan with a tight-fitting lid over medium heat. Add the meatballs in a single layer, working in batches if the pan is crowded. Brown them for about 6 to 8 minutes total, turning carefully so several sides color. They do not need to be cooked through yet. Transfer them to a clean plate.
  4. Build the tomato rice base. Add the chopped onion to the same pan and cook for 3 minutes, stirring and scraping up browned bits. Stir in the tomato paste and cook for 30 seconds. Add the diced tomatoes and their juices, rinsed rice, broth, oregano, remaining 1/2 teaspoon salt, and remaining 1/4 teaspoon pepper. Stir well so the rice is spread in an even layer.
  5. Simmer everything together. Nestle the browned meatballs into the rice mixture, distributing them across the pan. Bring the liquid to a gentle simmer, then cover tightly and turn the heat to low. Cook for 20 minutes without lifting the lid; steady low heat helps the rice cook evenly. Stir in the frozen peas during the final 5 minutes of simmering, carefully moving rice around the meatballs.
  6. Check doneness and rest. Check the center of a large meatball with a food thermometer; ground beef must reach the USDA FSIS safe minimum internal temperature of 160°F (71°C). If needed, cover and cook for a few more minutes, then check again. When the meat is safe and the rice is tender, turn off the heat and let the covered pan stand for 5 minutes. Fluff the rice gently with a fork, taste for seasoning, and serve.

Tips

  • Rinse the rice. Rinsing long-grain rice in a fine-mesh sieve removes loose surface starch, which helps keep the grains separate instead of turning gummy. Drain it thoroughly so the measured broth-to-rice balance stays close to the recipe.
  • Use a pan with a close-fitting lid. This recipe relies on trapped steam to cook the rice. If the lid is loose, cover the pan with foil first, then set the lid on top. Keep the heat low; a hard boil can scorch the bottom before the rice is tender.
  • Choose beef that is not too lean. Ground beef around 85% lean provides enough fat for juicy meatballs without leaving the rice excessively oily. If you use very lean beef, handle the mixture especially gently and do not cook the meatballs longer than needed after they reach the safe temperature.
  • Give the rice time to finish. Rice can look slightly wet when the heat first goes off. The 5-minute covered rest lets remaining steam finish the grains. If it is still firm, add 2 tablespoons (30 ml) hot broth or water, cover, and simmer gently for 3 to 5 minutes before resting again.

Serving Suggestions

Serve the meatballs directly from the skillet, spooning plenty of tomato rice and peas onto each plate. A crisp green salad with a simple vinaigrette balances the warm, saucy main dish, while steamed green beans or roasted broccoli make an easy vegetable side. For a more substantial meal, add warm crusty bread to mop up the tomato broth.

Finish with chopped parsley and, if you like, a little grated Parmesan. Keep the garnish light enough that the tomato, herbs, and browned beef remain the focus. If serving family-style, set out extra black pepper and Parmesan at the table rather than adding a lot of salt to the whole pan before tasting.

Variations

Make it without peas: Leave them out or replace them with 1 cup (150 g) diced bell pepper. Stir bell pepper in with the chopped onion so it softens in the pan. For a more Italian-style flavor, use basil instead of some or all of the parsley and finish with Parmesan.

Use ground turkey: Ground turkey can replace the beef in equal quantity, although the meatballs will taste milder and may be leaner. Handle gently and check the center of a meatball with a thermometer; ground poultry must reach 165°F (74°C), the USDA FSIS safe minimum. The rice and sauce cook the same way.

Add warmth or richness: Stir 1/4 teaspoon (0.5 g) red pepper flakes in with the tomato paste for a gentle kick. For a creamy finish, spoon a little plain yogurt onto individual servings, rather than stirring it into the hot skillet, where it could separate. Brown rice is not a direct swap: it takes longer to cook and needs a different liquid ratio, so use a recipe designed for brown rice instead.

Storage and Reheating

Refrigerate leftovers within 2 hours of cooking. Transfer them to shallow, airtight containers so the rice cools promptly, and keep them refrigerated for 3 to 4 days. If the dish has been sitting at room temperature longer than 2 hours, discard it rather than saving it for another meal. You can freeze cooled portions in airtight freezer-safe containers for up to 2 months for best quality; thaw overnight in the refrigerator before reheating.

Reheat a portion in a covered skillet over medium-low heat with 1 to 2 tablespoons (15 to 30 ml) water or broth, stirring gently once the rice loosens. Alternatively, microwave it covered in a microwave-safe dish, stirring midway through. Heat leftovers to 165°F (74°C) throughout, as measured with a food thermometer. Add a splash of liquid if the rice has dried out, and avoid repeated cooling and reheating of the same portion.

Frequently Asked Questions

Can I make the meatballs ahead?
Yes. Shape the uncooked meatballs, cover them, and refrigerate for up to 1 day before cooking. Keep raw beef separate from ready-to-eat foods, and wash hands, utensils, and surfaces after handling it. For the most even cooking, take the meatballs from the refrigerator while you prepare the rice ingredients, not hours in advance.

Can I use instant or brown rice?
Instant rice cooks much faster than the meatballs need, while brown rice usually needs more liquid and substantially more time. Neither is a simple one-for-one replacement in this method. For reliable results, use rinsed long-grain white rice; choose a recipe developed specifically for the rice you have if you want to use another variety.

Why is my rice still firm?
The pan may have lost too much steam, the heat may have been too low for a simmer, or the rice may need a few extra minutes. Add a small splash of hot broth or water, cover tightly, and simmer gently for 3 to 5 minutes. Check again before serving, and let the covered pan rest briefly once the grains are tender.

Can I skip browning the meatballs?
You can, but browning adds savory flavor and helps the meatballs hold their shape as they simmer. If you skip it, arrange the raw shaped meatballs in the rice mixture and cook until a thermometer confirms the centers reach the appropriate safe temperature. The finished sauce will have less of the browned flavor left in the pan.

How can I tell when the rice and meatballs are both done?
The rice should be tender with no hard center, and the liquid should be mostly absorbed rather than pooling in the bottom of the pan. Check a large meatball separately with a food thermometer to confirm it reaches 160°F (71°C) for ground beef. Rice texture alone cannot tell you whether the meatballs are safely cooked.

Related

More recipes to cook

Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes

Spotted an error? Tell us and we will correct it (corrections policy).