Two-time defending champion Barcelona ended their two-match winless streak with Lionel Messi setting up goals by Luis Suarez in the 20th and Antoine Griezmann in the 45th. It had opened the scoring with an own-goal by Pau Torres in the third minute, and Ansu Fati netted the final goal in the 87th. Gerard Moreno scored for the hosts in the 14th.
“These points were important to keep us in the fight for the title,” Barcelona defender Gerard Piqué said. “We will keep pushing even though we know it's going to be complicated.”
'We want the best in league': Zinedine Zidane 'hopes' Lionel Messi stays in La Liga amid exit report
Suárez's strike was his 194th goal with Barcelona, tying him with Ladislao Kubala as the club's third all-time highest scorer, behind César Rodríguez (232) and Messi (630).
Griezmann, back in the starting lineup, hadn't scored since February.
Messi had a goal disallowed for offside in the 69th and hit the crossbar with a free kick in second-half stoppage time.
Barcelona led when the league was suspended but had drawn three of its six matches since the return, including the last two. It entered the match against Villarreal with coach Quique Setién under pressure because of the team’s poor run of results.
Villarreal had won five of its six matches after the break. It stayed three points behind fourth-place Sevilla, which hosts relegation-threatened Eibar on Monday.