Villarreal - FC Porto have set up an all-Portuguese Europa League final against Braga after they lost 3-2 at Villarreal but still advanced 7-4 on aggregate.
Cani stabbed home Marco Ruben's cross in the 17th minute to give Villarreal hope, but Porto striker Hulk silenced the crowd at El Madrigal Stadium in the 40th munite when his blast took a friendly deflection off defender Mateo Musacchio's foot before landing in the net.
Porto's Radamel Falcao broke Juergen Klinsmann's 15-year-old record with his 16th goal of the tournament in the 48th.
Joan Capdevila leveled the score in the 76th and Giuseppe Rossi scored Villarreal's third from the penalty spot in the 80th.