Bakambu put his side ahead in the 19th minute after firing past Sergio Rico thanks to a cross from Pablo Fornals.
The Yellow Submarine doubled their lead through Carlos Bacca in the 53rd minute, but that counted for nothing as the visitors clawed back to level scores through Clement Lenglet and Franco Vazquez.
With 12 minutes left to play, Ever Banega converted from the penalty spot after a foul by Victor Ruiz – which got him sent off.
Despite a late rally from the hosts, they could not muster a point at home. Bakambu, making his 12th start of the Spanish top flight this term, was on from start to finish for Javier Calleja’s men.
The defeat sees Villarreal remain sixth with 21 points after 13 games. They travel to Estadio Municipal de Butarque for their next game against 11th placed Leganes.