Hamilton (28-18-1-1) extended its season-high winning streak to five games.
The Phantoms opened the scoring at 14:39 of the first period when Nolan Baumgartner scored on a power-play.
The Bulldogs set a franchise-low with one shot on goal in the first period, but came back to outshoot Philadelphia 10-to-7 in a scoreless middle period.
Milroy scored his team-leading 21st goal with 2:37 left to play to send the game to overtime.
Hamilton netminder Jaroslav Halak made 29 saves on 30 shots and stopped five of six Philadelphia attempts in the shootout to pick up his 14th win of the season.
Michael Leighton suffered the loss for the Phantoms despite turning aside 27 of the 28 shots he faced.