Preheat the oven to 375°F. Butter a 9”x13” baking dish and set aside.
In a large saucepan, melt 6 tablespoons butter over medium heat.
Add the onion and a good pinch of salt and cook until tender but not browned, about 7-8 minutes. Add the garlic and sauté until fragrant, 1 minute.
Add the flour, stirring continuously, and cook for 2-3 minutes to create a roux.
Switch to a whisk, slowly add the milk and whisk until the sauce lightly thickens, about 5-7 minutes.
Turn off the heat and slowly add the soft cheeses (fontina, provolone, mozzarella) one handfuls at a time, stirring until melted before adding the next handful. Adding the cheese slowly, off heat and melting between additions will help create a smooth sauce.
Add ¼ cup of the parmesan, stirring until smooth.
Stir in the pepper and a good pinch of salt. Taste and adjust if needed.
Still off the heat, gently fold in the meatballs then the tortellini (no need to cook first).
Pour the mixture into the prepared dish. Combine the remaining ¼ cup parmesan with the Panko breadcrumbs and sprinkle on top.
Bake for 30-35 minutes or until bubbly around the edges and the topping is nicely browned.
Serve immediately while hot.
No need to cook the tortellini ahead; just mix with the sauce right out of the bag.
If you’d like to add some vegetables, fold in 2 cups of baby spinach or ½ cup frozen peas with the tortellini and meatballs.
While the dish is best enjoyed hot fresh from the oven, you can assemble it an hour or two ahead of time and then bake. To warm any leftovers, microwave for a few minutes but it really the best with that crunchy top – reheat gently in a 300°F oven for about 20 minutes until heated through.