The game-winner came when Evander Kane carried the puck down the left side and threaded an accurate pass to Hainsey, who tipped a shot past Sergei Bobrovsky.
Atlanta entered the third period trailing 3-0 but outscored Philadelphia 4-1 down the stretch to force an overtime and then take its third win in four games.
Kane and Andrew Ladd each collected a goal and an assist, and Zach Bogosian and Tobias Enstrom also scored in the final period for Atlanta.
Chris Mason got victory, stopping 11-of-12 shots after relieving starter Ondrej Pavelec, who had yielded three goals on 12 shots through two periods before being pulled.
Ville Leino scored a hat trick but it wasn't enough to prevent Philadelphia's fifth loss in seven games.
Bobrovsky ended up allowing five goals on 41 shots for the Flyers.
Boston schools pull out free condoms over wrapping complaints
Aaron Carter is still in love with Hilary Duff