The Portuguese champions also boosted their bid of winning the triple crown as they face Guimaraes in the Portuguese Cup final-four days after the Europa League final.
Villarreal began strong, knowing that they had to score quickly to have any chance, and owned almost 80 percent of the possession early on.
Except for a sole occasion by Cristian Rodriguez four minutes in, Porto were content to protect their comfortable margin and wait to counterattack.
Porto goalkeeper Helton stretched to block a shot by Cani on the edge of area seven minutes before Villarreal’s pressure paid off in the Spanish midfielder’s opener.
The rhythm of play slowed down, but Villarreal continued to create chances. Santi Cazorla played Rossi through in the 32nd, but the Italy striker fired into the side netting with only Helton to beat.
After equalizing, Hulk had a shot to double his haul on halftime, but the Brazilian could not better Villarreal goalie Diego Lopez.
Freddy Guarin finally took advantage of Villarreal’s high defensive line when he found Falcao alone in the area in the 48th for the Colombia forward’s fifth goal of the semifinals.
Villarreal midfielder Marcos Senna returned after two months on the sidelines in the 67th.
Capdevila controlled a cross before firing past Helton to end Porto’s perfect run of seven wins in as many away games before Rossi cashed in a foul by Nicolas Otamendi on Ruben in the area for his 11th goal of the tournament.
Villarreal, which were fourth in the Spanish league, remained perfect in eight games at home in the continental competition.