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 diced onion and minced garlic to the skillet. Sauté until the onion is translucent, about 5 minutes.
Stir in the crushed tomatoes, tomato sauce, oregano, basil, salt, and pepper. Simmer for 10 minutes.
While the sauce simmers, 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. Mix well.
Transfer half of the pasta mixture into a greased 9x13-inch baking dish. Layer half of the mozzarella cheese and half of the pepperoni on top.
Add the remaining pasta mixture, followed by the rest of the mozzarella cheese, pepperoni, and sprinkle with Parmesan cheese.
Cover the baking dish with aluminum foil and bake for 25 minutes. Remove the foil and bake for an additional 15 minutes, or until the cheese is bubbly and golden.
Let the casserole cool for 5 minutes before serving. Garnish with fresh basil leaves if desired.