Cook sausage in a large pot or Dutch oven over medium-high heat 5-7 minutes, breaking up with a wooden spoon, until browned and cooked through.
Cook onion in pot 3-4 minutes until soft. Add garlic; cook another minute until fragrant.
Add tomatoes, broth, pasta, Italian seasoning, oregano, and optional red pepper flakes. Season with salt and pepper.
Bring to a boil; reduce to medium-low. Cover; simmer 12-15 minutes, stirring occasionally, until pasta is al dente and most liquid absorbs.
Stir in half the pepperoni. Top evenly with mozzarella and remaining pepperoni.
Cover; let sit 3-4 minutes until cheese melts completely. Sprinkle with Parmesan and basil before serving.