Heat olive oil in a large skillet over medium heat. Add onion and cook, stirring occasionally, until soft, about 5 minutes. Add the garlic and cook for 2 minutes more. Add the tomatoes and balsamic vinegar and cook for another 2 minutes.
Transfer mixture to a baking dish and stir in the capers, olives, oregano, salt and pepper. Place dish in the oven and roast for 20 minutes.
Meanwhile, bring a large pot of salted water to a boil. Add pasta and cook until it is al dente, about 8 to 10 minutes. Drain. Put pasta in a warm serving bowl, toss with Parmesan cheese and add the tomato mixture.