In a large pot or dutch oven, heat olive oil over medium heat. Add onion and sauté for 3-4 minutes, then add garlic and cook for 1 more minute.
Add sausage and break into small crumbles with a spatula. Cook until browned, then drain off grease.
Add tomato puree, ¼ cup water, salt, pepper, and oregano. Reduce heat and simmer for 30 minutes.
As sauce simmers, boil pasta in generously salted water until almost al dente (slightly undercooked). Measure out 1 cup of the pasta water and set aside, then drain out the remaining water.
Add the cooked pasta to the sauce after the 30 minutes, along with 1 ½ cups mozzarella and ½ cup pasta water. Stir to combine and add remaining pasta water only if the mixture is dry.
Preheat oven to 350 degrees F.
Transfer pasta mixture to a 9×13-inch baking dish and top with remaining mozzarella and parmesan.
Bake pasta for 25-30 minutes or until bubbling and cheese begins to turn golden.