Bring a large pot of salted water to a boil over high heat. Add the pasta and cook until tender but still firm to the bite, stirring occasionally, about 8 to 10 minutes. Drain pasta reserving 1/2 cup of the cooking liquid.
Meanwhile, warm olive oil in a large, heavy skillet over medium-high heat. Add the garlic and cook until fragrant, about 2 minutes. Add the spinach and tomatoes and cook until the spinach wilts, about 2 more minutes. Add the cooked pasta and toss. Add the cheeses, salt, pepper, and the pasta cooking liquid and stir to combine.