Fill a large pot with salted water and bring it to a boil. Add the penne pasta and cook according to package instructions until al dente. Drain the pasta and set it aside, reserving about 1/2 cup of pasta water.
Heat 2 tablespoons of olive oil in a large skillet over medium heat. Add the chopped onion and sauté for 3-4 minutes until softened. Toss in the minced garlic and cook for another 30 seconds until fragrant.
Add the ground beef to the skillet with the onions and garlic. Break it up with your spoon and cook until browned and no longer pink, about 6-8 minutes. Season with salt, pepper, and Italian seasoning.
Stir in the turkey pepperoni slices and cook for 2 minutes to release their flavor. Pour in the crushed tomatoes and add red pepper flakes if using. Simmer the sauce for 5-7 minutes to let the flavors meld together.
Add the drained penne pasta to the skillet with the beef and tomato sauce. Toss everything together, adding a splash of reserved pasta water if the sauce feels too thick.
Sprinkle the shredded mozzarella and Parmesan cheese over the pasta, stirring gently to melt the cheese into the sauce. Remove from heat once the cheese has melted and everything is well combined.
Dish out the pasta hot, garnished with extra Parmesan or fresh herbs if desired. This dish pairs beautifully with a simple green salad or garlic bread.