The hosts were reduced to 10 men on the hour mark after Dani Raba was shown a straight red card on the hour mark for a reckless challenge on Sergio Busquets.
Barcelona then took full advantage, with Suarez tapping into an empty net in the 72nd minute after rounding goalkeeper Sergio Asenjo before Messi secured all three points late on.
The hosts were without the injured Andres Iniesta for the trip to Villarreal and opted to bring in Denis Suarez in his place.
The club shared their lineup, per their official Twitter account:
Barca almost went ahead in the opening exchanges, with Gerard Pique heading Denis' corner kick against the frame of the goal.
ESPN FC's Samuel Marsden showed how frequently Barca have been denied by the woodwork this season:
Yet Villarreal hit back and forced Marc-Andre ter Stegen into a great save from Roberto Soriano, with the goalkeeper diving to palm his fierce effort clear.
Barca, as has so often been the case this season, were struggling to create clear-cut chances despite having more of the ball.
Messi flashed a shot just wide, but that was about as good as it got for Ernesto Valverde's side in the first half.
Villarreal, meanwhile, were posing problems, particularly on the break with Soriano and posed more of an attacking threat, as shown by sports journalist Robbie Dunne:
The second half saw Barca's woes in front of goal continue, and Valverde responded by taking off Denis and bringing on Paco Alcacer just shy of the hour mark.
Barca then went even closer to an opener, with Jordi Alba setting up Messi, who fired across goal. The ball just clipped the outside of the post as it went out of play.
Minutes later, Villarreal were reduced to 10 men after Raba was shown a straight red card for a reckless challenge on Busquets.
Football writer Michael Yokhin showed how his disciplinary record is not the best:
With the one-man advantage, Barca began to completely dominate and hit the post again, this time through Suarez after a good cross from Alba.
However, Suarez was not to be denied, and he exchanged passes with Alcacer before skipping round Asenjo and firing into an empty net.
Messi then made the points safe in the 83rd minute after some poor defending from the hosts.
Busquets intercepted a weak pass out of defence and slipped it to Messi, who dribbled into the box and fired home.
It was yet another landmark goal for the Argentinian, as shown by football journalist Jason Pettigrove:
It may not have been the prettiest display by Barcelona, but it's another win and another clean sheet for the Catalan giants.
Although the red card helped change the game, Valverde's substitutions also proved effective. Barca remain clear at the top and are still unbeaten in La Liga.