Barcelona inledde helt väntat med att ha ett kraftigt övertag när det gällde bollinnehavet, men efter drygt 25 minuter kom det en kalldusch.
Alexis Sanches hade precis haft en chans att ge Barcelona ledningen när Ighalo istället gjorde 1-0 för Granada efter en spelvändning som slutade med att han spelades fram av före detta barcelonaspelaren Nolito och kunde peta in 1-0 från nära håll.
Efter fem minuter kom en av säsongens mest väntade kvitteringar. Toño lämnade retur på Fabregas skott och Messi höll sig framme och kunde kvittera. Målet är Argentinarens 300:e för Barcelona, ingen har gjort fler i historien.
Det var återigen Messi som slog till när Barcelona fick en frispark i ett läge några meter utanför straffområdet. Med en känslig vänster lyfte argentinaren bollen över muren och förbi Toño för 2-1 och mål 301.
På tilläggstid hade Brahimi ett gyllene läge att kvittera när han väggspelade sig fram till ett läge ett par meter från mål men avslutet satt i Valdes högra burgavel till Brahimis stora förtvivlan.
Granada: Toño; Nyom, Mainz, Í. López, Siqueira; Mikel Rico, Recio, Torje, Nolito; Aranda y Odon Ighalo Avb: Roberto, Brahimi, El-Arabi, Buonanotte, Borja Gómez, Juanma Ortiz, Iriney
Barcelona: Víctor Valdés; Dani Alves, Piqué, Mascherano, Adriano; Sergio Busquets, Thiago, Cesc; Pedro, Messi, Alexis Sanches. Avb: Pinto, Puyol, Iniesta, Montoya, Jordi Alba, Tello y Song