Preheat oven to 400 degrees. Spray a 2-quart baking dish with non-stick cooking spray.
In a large non-stick skillet, combine olive oil and butter. Cook over medium heat until butter melts. Add onion and garlic. Cook until onion begins to be translucent, 4 to 5 minutes.
Raise heat to medium-high. Working in batches, add spinach to pan. Cook, stirring often, until spinach wilts, 3 to 4 minutes per batch. Repeat process with remaining spinach until all spinach is wilted, stirring often. To reduce liquid, cook for an additional 3 to 4 minutes, stirring often.
Sift flour over spinach, stirring to combine. Cook until thickened, 2 to 3 minutes. Add cream and salt, stirring well. Cook until thickened, 2 to 3 minutes and remove from heat.
Add 1 1/2 cups of shredded mozzarella, 1 cup of Parmesan and 1/2 cup Asiago, stirring well. Spoon into prepared dish.
Cover and bake in preheated 400 degree oven for 15 minutes. Remove cover and spread remaining 1/2 cup mozzarella over top. Bake until cheese is golden brown, about 10 minutes.