Victory for the home side would have all but secured a top-four finish in the table this season, but they could not overcome a tricky Sociedad outfit, who remain in 12th position and just two points off the top eight with three games left.
Aritz Elustondo should have sent Sociedad into a 15th-minute lead when he met a deep corner at the far post, but the Spaniard somehow nodded wide from close range.
Villarreal's first clear sight of goal came in the 23rd minute when Cedric Bakambu found his strike partner Roberto Soldado at the far post, but the former Tottenham Hotspur forward could not beat Geronimo Rulli.
Moments later, the home side forced a free kick just outside the Sociedad box and Bruno hit the woodwork with a fine strike.
Sociedad had another half-chance five minutes before the break when David Zurutuza danced into the Villarreal box, but Sergio Asenjo was quickly off his line to smother the ball and keep the score at 0-0.
Carlos Vela had the first clear chance of the second period on the hour, but the Mexican, after bursting through on goal, attempted to chip Asenjo and it was a comfortable save for the Spaniard.
Bakambu perhaps should have won it for the home side in the 85th minute when he burst through on goal, but the striker could not beat Rulli as the two teams played out a goalless draw on the night.
Villarreal will host Liverpool for the first leg of their Europa League semi-final on Thursday, while Sociedad are back in league action at home to Real Madrid next weekend.