Madrid also stumbled into the quarter-finals of the Copa del Rey following a disappointing 2-2 draw at home to Numancia on Wednesday, prompting Zidane to admit that his new contract with the club has no meaning.
Fornals struck with three minutes left to leave Zinedine Zidane's wasteful side fourth and a whopping 16 points behind runaway league leaders Barcelona, a deficit which will turn into 19 should Barca win at Real Sociedad on Sunday.
Madrid also drew at Celta Vigo 2-2 a week ago, and lost to Barcelona 3-0 at the Bernabeu in its last match past year.
Villarreal meanwhile move up to fifth on 31 points thanks to midfielder Fornals' stunning goal, which puts Javier Calleja's side just a point behind off-form Madrid.
Copa del Rey quarter final draw revealed
Three-time defending champion Barcelona will play the first leg against its crosstown rival at Espanyol's RCDE Stadium next week. Despite losing 2-1 at Villarreal, who are now sixth in La Liga, Leganes progressed on away goals having won the first leg 1-0.
The game kicks off at 3.15pm meaning it is not available on UK TV, instead the Girona vs Las Palmas game was on at 12pm and Eibar v Atletico Madrid is on at 5.30pm and Deportivo La Coruna v Valencia at 7.45pm.
Gareth Bale had a goal disallowed for offside early in the first half.
Real Madrid had two more excellent chances late in the first period, but Bale curled just wide of the far post before Ronaldo's close-range effort was somehow kept out by the diving Asenjo.
Luka Modric had one of Madrid's best chances in the second half with a shot from inside the area that missed over the crossbar.
Villarreal brought Denis Cheryshev on as a half-time substitute and the former Madrid winger picked Casemiro's pocket before dragging wide from the edge of the box. Fornals picked up the loose ball just outside the area and chipped it over the goalkeeper for the stunning victor.