Messi scored in the fifth, 41st and 79th as Barcelona rebounded from two draws - against Real Sociedad in La Liga and AC Milan in the Champions League.
Barcelona blew a two-goal lead last weekend at Real Sociedad in a 2-2 draw and then surrendered a late goal against AC Milan to settled for a draw in Group H play Tuesday.
But Messi had Barca in front inside five minutes, Fabregas doubled the lead in the 13th, Villa scored in the 34th and an own goal in the 40th and a second by Messi in the 41st put the match away before half.
Xavi got on the scoreboard in the 57th, Villa completed his brace in the 76th, and Messi capped the scoring with his third of the match and fifth this season in the 79th.
Barca is two points off the top after three matches. Osasuna lost its first of the season and watched is goal differential plummet to minus-seven.
Valencia 1, Sporting Gijon 0
Gijon, Spain - Roberto Soldado scored in the 30th minute as Valencia continued its perfect start with a 1-0 win over Sporting Gijon on Saturday in Spain's La Liga at El Molinon.
Valencia has won all three of its matches, and moved into sole possession of first place in the standings with Real Madrid and Real Betis - the other teams unbeaten after two games - still to play Sunday.
Gijon remained winless after three matches and is the only team in La Liga yet to earn a point this season.
Granada 1, Villarreal 0
Granada, Spain - Ikechukwu Uche scored in the 56th minute and Giuseppe Rossi missed a penalty late in the second half as Granada added to Villarreal's woes with a 1-0 win Saturday at Los Carmenes in Spain's La Liga.
Villarreal has just one point from three matches this season in La Liga, and dropped its Champions League match at home to Bayern Munich on Wednesday, 2-0.
Granada, promoted to La Liga this season, earned its first victory after two losses to start the season.
Sevilla 1, Real Sociedad 0
Seville, Spain - Frederic Kanoute scored early in the second half and Sevilla remained unbeaten after three matches with a 1-0 win over Real Sociedad in La Liga on Saturday at the Sanchez Pizjuan.
Sevilla has two wins and a draw after three weeks and is two points off the top. Sociedad, which tied Barcelona last week, lost its first of the season.
Malaga 1, Mallorca 0
Mallorca, Spain - Martin Demichelis scored in the 39th minute and Malaga won its second straight, 1-0 over Mallorca at the Estadio Son Moix on Saturday in Spain's La Liga.
Malaga lost its first game, but rebounded Monday with a 4-0 win over promoted Granada. Mallorca lost its second of the season against one win.