Villarreal started the campaign in the Champions League after finishing fourth last season, but a fourth match without a win left them 17th and three points above the bottom three.
Getafe scored through Diego Castro after only six minutes at the Madrigal, with the hosts dominating possession and the visitors playing on the break.
Villarreal's Borja Valero had an 18th-minute penalty saved and Marcos Senna crashed a free kick against the crossbar before Nilmar won them a second penalty, flinging himself to the ground just before the break.
The Brazilian international scored from the spot, but Barrada poked in the winner in the 72nd minute after another well-worked breakaway.
Getafe climbed to 13th with 32 points, five ahead of Villarreal who left the pitch to a barrage of whistles.
Champions Barcelona are 10 points back in second place after beating Racing Santander 2-0.