Cook pasta according to package instructions.
Heat olive oil in a large pan over medium-low heat. Once hot, add onions, garlic and a big pinch of salt, pepper and cook until softened, about 5 minutes.
Add tomatoes and balsamic vinegar and cook until slightly reduced about 5-8 minutes.
When pasta is done, add ½ cup of the pasta cooking water to the tomatoes. Drain pasta and add it to the tomato sauce along with the basil, and parmesan cheese. Toss to combine.
Taste and add more basil and salt as needed. Serve immediately.
