Cole Hamels (4-13) was trying to protect a 1-0 lead for the Phillies when he allowed the bottom of Detroit's batting order to break through. After a one-out walk to Hernan Perez, Ramon Santiago and Avila hit back-to-back doubles.
Santiago was playing third base in place of slugger Miguel Cabrera, who hasn't played since Monday because of an injured left hip.
Fister (9-5) allowed three hits and an unearned run. Joaquin Benoit pitched the ninth for his 10th save in 10 chances.
Darin Ruf grounded out with a man on third to end it.
The Tigers were without Cabrera, outfielder Torii Hunter (left Achilles) and second baseman Omar Infante (sprained left ankle). The Phillies were short-handed, too, with first baseman Ryan Howard and outfielders Domonic Brown and Ben Revere on the disabled list.
In the middle of their latest loss, the Phillies announced left-hander Cliff Lee would miss Saturday night's start because of a stiff neck.
Philadelphia took a 1-0 lead with a third-inning run off Fister. John Mayberry Jr. reached on an error by Perez, the second baseman. One out later, Carlos Ruiz hit a single, and Michael Young followed with an RBI single to snap an 0-for-12 skid.
But Fister struck out the next two hitters to get out of that jam. After Ruf's single in the fourth, no more Phillies reached base until the eighth.
Young drew a two-out walk in the eighth, but Fister retired Kevin Frandsen on a groundout and walked off to an ovation from the Comerica Park crowd.
Fister walked one and struck out six.
Benoit allowed a leadoff single by Jimmy Rollins. With one out, Rollins stole second, and with two outs, he stole third. But the Phillies couldn't get him home.
Santiago had a nice all-around game. Young led off with a grounder toward the hole between Santiago and shortstop Jhonny Peralta, and Santiago made a diving stop to retire the Philadelphia third baseman.
In the fifth, Santiago's double down the left-field line brought Avila to the plate in a second-and-third situation. Avila, who was hitting .185 entering the game, hit a drive to the gap in left-center to score both runners.
Hamels allowed two runs and six hits in seven innings. He walked three and struck out six.