Heat oil in a large stockpot over medium heat. Add onion and cook until soft, about 5 minutes. Add garlic; cook and stir until fragrant but not brown, about 2 minutes. Add tomatoes, wine, water, basil, tomato paste, sugar, pepper flakes, oregano, salt, and pepper. Cover, bring to a simmer, and cook, stirring occasionally, for 45 minutes.
Remove from the heat and puree soup with an immersion blender until smooth, or blend in batches in a blender. Return to the heat, stir in Parmesan cheese, and cook until heated through, about 3 minutes more. Serve immediately.