Preheat your oven to 375°F (190°C).
In a large skillet over medium heat, cook the ground beef and Italian sausage until browned. Drain excess fat.
Add the chopped onion and minced garlic to the skillet, cooking until the onion is translucent, about 5 minutes.
Stir in the crushed tomatoes, tomato sauce, Italian seasoning, salt, and black pepper. Let the sauce simmer for about 10 minutes.
Meanwhile, cook the penne pasta according to package instructions until al dente. Drain and set aside.
In a large mixing bowl, combine the cooked pasta with the meat sauce, half of the mozzarella cheese, and half of the pepperoni. Mix well.
Transfer the mixture to a greased 9x13-inch baking dish. Top with the remaining mozzarella cheese, pepperoni, and sprinkle with Parmesan cheese.
Bake in the preheated oven for 25-30 minutes, or until the cheese is bubbly and golden.
Let the casserole cool for 5-10 minutes before serving. Garnish with fresh basil leaves if desired.