The La Liga leaders’ slip-up will give renewed hope to title rivals Sevilla after their 2-0 win over Elche on Friday.
Carlo Ancelotti’s Real are now four points clear of second-placed Sevilla at the top as they look to regain the crown they lost to Atletico Madrid last season.
The draw moves Unai Emery’s Villarreal up to fifth, only two points behind Barcelona in the fourth and final Champions League spot.
Real Madrid will turn their focus to Tuesday’s Champions League last-16 first leg at Paris Saint-Germain.
Bale was surprisingly named in the starting line-up as the Welshman made his first appearance for Real Madrid since August.
He has suffered from various injuries in the months since, although he has played four times for Wales.
Bale looked dangerous in patches, with one second-half shot being tipped onto the crossbar by home goalkeeper Geronimo Rulli, before being replaced by Luka Jovic with 15 minutes remaining.
Karim Benzema was missing for Real, who will be desperately hoping the Frenchman will be fit for the trip to Paris in three days’ time.
Villarreal were the more threatening side in the first half. Alberto Moreno struck the post and visiting ‘keeper Thibaut Courtois denied Arnaut Danjuma an opening goal with a fine save.
Real dominated possession in the second period, though, with Rulli also saving from Toni Kroos.
Ancelotti also sent on Eden Hazard in the 82nd minute as his side pushed for a winner, but they created little else.