Girona missed a double chance to equalise shortly before the break, with Barca defender Gerard Pique clearing a shot off the line, and the home side's striker Cristhian Stuani was thwarted by the feet of German keeper Marc-Andre ter Stegen early in the second period.
Girona had defender Bernardo Espinosa sent off in the 51st minute for a second booking and their hopes of getting back in the game were dealt a fatal blow by La Liga's top scorer Messi, who lofted the ball over keeper Bono in the 68th to net his 18th league goal of the season.