Boil the pasta: Bring a large pot of salted water to a boil. Cook the pasta until just al dente.
Reserve 1/2 cup of pasta water, then drain.
Sweat the aromatics: While the pasta cooks, heat olive oil in a large skillet over medium heat. Add onion and bell pepper. Cook 4–5 minutes until softened.
Stir in garlic and cook 30 seconds.
Brown the beef: Add the ground beef to the skillet. Season with salt and black pepper. Cook, breaking it into small pieces, until browned and no longer pink, about 6–8 minutes.
Drain excess fat if needed.
Build the sauce: Stir in tomato paste and cook 1 minute to caramelize slightly. Add crushed tomatoes, beef broth, oregano, basil, and red pepper flakes. Simmer 5–7 minutes, stirring occasionally, until thickened.
Make it creamy: Reduce heat to low.
Stir in Greek yogurt or light cream until smooth. If using yogurt, temper it by whisking in a spoonful of hot sauce first to prevent curdling. Adjust salt and pepper.
Toss with pasta: Add drained pasta to the skillet.
Toss to coat. If the sauce feels too thick, splash in reserved pasta water, a little at a time, until silky and glossy.
Add cheese: Sprinkle mozzarella or Parmesan and fold it in so it melts into the sauce. Save a little for topping if you like.
Finish and serve: Remove from heat.
Garnish with chopped parsley or basil. Serve hot with extra cheese at the table.