Gasol hit him several times, not just once. There were about three fouls made by Gasol before the contact with Fisher happened. And the contact with Fisher was debatable. Fisher hit him as much as Garnett hit Fisher.
I will say that the refs arguably realized their mistake and started giving Pierce calls he wasn't getting earlier. But Pierce probably should have gotten those calls earlier, given that this in the NBA, where stars get calls.
Still, despite a little help for Pierce, it doesn't make up for Garnett's absence. If the refs didn't blow that, the C's win the game.