Antonio Puertas found the top corner in the 89th minute to salvage a point for the hosts.
Right-back Alves, making his first La Liga appearance since 2016, provided the cross from which Luuk de Jong opened the scoring in the second half.
Barcelona also had Gavi sent off for a second bookable offence.
De Jong thought he had broken the deadlock in the first half but his header was disallowed by the video assistant referee for offside.
Alves produced an outstanding block to deny Puertas moments before the equaliser, but there was little the visitors could do about the 29-year-old’s late finish.
Barcelona are back in action on Wednesday, when they host Real Madrid in the Spanish Super Cup semi-finals.
Granada, meanwhile, equal a club-record seven La Liga games without defeat.
- Shots on Target