Steven Gerrard’s team were hoping to become the first Ibrox side to triumph away from home against Spanish opposition as they made their group-stage return after eight years in the Uefa wilderness.
They did not quite manage that but did deliver a display of grit and endeavour to kick-off their Group G campaign with a precious point at El Madrigal.
Carlos Bacca and Gerard Moreno twice had La Liga side Villarreal ahead but Rangers refused to buckle, with Scott Arfield netting ahead of Lafferty’s maiden goal in continental club competition.
Gerrard sprang a selection shock before kick-off as defender Nikola Katic was dropped despite having barely put a foot wrong since signing from Croatian side Slaven Belupo this summer.
Joe Worrall got the nod instead as he was handed a surprise debut but the Nottingham Forest loanee could not have got off to a worse start.
The 21-year-old was making his first start for almost six months after finding himself frozen out by Aitor Karanka at the City Ground and he looked rusty as he allowed the ball to ricochet off his body into Bacca’s path.
The Colombian reacted brilliantly as the ball sat up perfectly just outside the box, arcing a stunning hit over Allan McGregor for the opener just 44 seconds in.
Villarreal boss Javier Calleja had tinkered with his own line-up, bringing former Arsenal midfielder Santi Cazorla back into a side amid nine changes to the team which picked up their first win of the season against Leganes on Sunday.
The 33-year-old and midfield accomplice Nicola Sansone were pulling the strings with effortless ease, forcing Rangers to scramble for cover.
Little by little, Rangers grew in confidence as Villarreal allowed them time to pick some passes - although the Yellow Submarine always looked capable of sinking their guests on the counter.
Ex-Everton anchorman Ramiro Funes Mori should have done better after he was allowed to slip his marker and get on the end of a Cazorla corner.
Cazorla brought out a smart stop from McGregor just before the change of ends and the Scotland goalkeeper had to be alert in the early moments after the break, making three timely interventions as the Spaniards turned up the heat.
Gerrard would have been pleased with his side’s overall showing, with only a quality final ball missing.
But they got it after 67 minutes as James Tavernier charged into the box. Ruiz got a tackle in but Daniel Candeias was on hand to clip the ball back in for Arfield to sweep home from close range.
However, no team has won more games or scored more goals in the Europa League than Villarreal and they showed why as they immediately clicked up a gear as substitute Moreno charged past Barisic before rifling past McGregor to regain the lead within two minutes of the equaliser.
But again Rangers refused to let their heads sink and hit back with quarter of an hour left.
Barisic charged down the left before cutting back for Lafferty, who tucked home to the delight of the 2,200 travelling supporters.
The drama continued into stoppage time as first Arfield came close to a dramatic winner before it was Rangers’ turn to endure a last-gasp scare as Bocca failed to convert at the back-post.