But Cani set up substitute Jonathan Pereira to tap in the hosts' second goal off the break in the 67th after streaking down the left flank.
Espanyol, however, wasn't done and forward Sergio Garcia pulled one back in the 80th when he spun away from his marker and drilled a shot past goalkeeper Sergio Asenjo to leave the result in doubt until the final whistle.
It was Espanyol's first loss of the season.
"Both goals that we conceded could have been prevented," Aguirre said. "We can lose a game but maintaining a sense of order is a priority for us. We scraped and played well, but Villarreal had the answer. We can only congratulate them because they're on a great run."
Also, Athletic Bilbao fought back for an entertaining 2-1 win over Real Betis, while Getafe beat visiting Celta Vigo 2-0.
Bilbao dominated the match at the new San Mames Stadium, which has sections of seating still under construction, with forward Ibai Gomez peppering Betis' area with crosses from the left wing and hitting the crossbar twice before halftime.
But Betis goalkeeper Guillermo Sara saved a penalty kick taken by Benat Etxebarria in the 58th when Markel Susaeta wrong-footed Xavi Torres and was tripped by the midfielder in the box.
In a rare excursion into Bilbao's area, Betis forward Jorge Molina poked his own rebound from a header saved by Gorka Iraizoz under the 'keeper from a tight angle to snatch the lead in the 62nd.
Bilbao kept pushing forward and the 73rd-minute equalizer came through Oscar de Marcos, who went on in the 70th and soon raced in to head Benat's cross between Sara's legs.
Defender Mikel San Jose was then left unmarked to head in Gomez's cross the first one he sent in from the right side to take Bilbao's winner in the 82nd.
Molina almost grabbed a draw for Betis, which was left with just one victory this season, with a shot off the post four minutes from time.
"To be fair, Athletic should have gone into halftime ahead," said Betis coach Pepe Mel. "From there on, with the saved penalty, the sensation that I take away is that we did enough to take a point."
Getafe center back Lisandro Lopez scored one goal and set up a second to give the Madrid-based team its second victory of the season.
Lopez headed in a cross by Pedro Leon one minute before halftime, and the Argentine flicked on Leon's corner kick for Alvaro Arroyo to double the advantage five minutes after the break.
"We should have won by a wider margin," said Getafe coach Luis Garcia. "We had the game under complete control throughout. This is the line we have to continue in, playing with this degree of intensity."