Bring a large pot of salted water to a boil. Cook the pasta according to the package directions until just tender. Reserve about ½ cup of pasta water, then drain.
Heat olive oil in a large skillet over medium heat. Add the diced onion and cook for 2–3 minutes until softened. Add the minced garlic and cook for about 30 seconds.
Add the ground beef and break it apart with a spatula. Cook until browned and no longer pink.
Stir in the tomato paste, paprika, Italian seasoning, garlic powder, salt, and black pepper. Cook for about 1 minute.
Add the tomato sauce, diced tomatoes, and beef broth. Stir well and bring to a gentle simmer. Cook for 5–7 minutes until the sauce thickens slightly.
Add the cooked pasta to the skillet and toss until evenly coated with the beef and tomato sauce. Add a small amount of reserved pasta water if the sauce is too thick.
Sprinkle the mozzarella and cheddar over the pasta. Cover the skillet for 1–2 minutes until the cheese melts.
Remove from the heat and garnish with fresh parsley. Add Parmesan or red pepper flakes if desired.
Cook ground beef to an internal temperature of 160°F (71°C) before serving.