Espanyol said that Betis had agreed to pay the player's 28.14 million euro ($31.36 million) release clause.
In their statement, Betis said Iglesias had signed a five-year contract.
The 26-year-old only became a regular starter two seasons ago, hitting 15 goals in the second division for Real Zaragoza. He joined Espanyol last summer and scored 17 goals to help propel the Barcelona-based club to seventh place and Europa League qualification.
"Today, I have to close a stage of my life that, despite its brevity, has given me unforgettable moments, an incalculable personal and sporting growth," he wrote on social media.
For Betis, 10th in la Liga last season, Iglesias is the second big buy of the summer after French international Nabil Fekir. The club lost Argentinian midfielder Giovani Lo Celso to Tottenham in a loan deal that could turn into a 60 million euro sale.