The first half of a 2-2 draw saw few clear-cut opportunities until Conor Gallagher’s 34th-minute corner delivery to the back post was met by a firm downward header by Darren Pratley.
Jarrod Bowen then equalised with his 15th Sky Bet Championship strike of the campaign before Naby Sarr put the hosts in front soon after.
Lee Bowyer’s men looked set to hang on for a precious three points, but were undone as teenager Keane Lewis-Potter’s header hit a post and squirmed over the line after hitting Phillips’s back.
Charlton enjoyed the first real chance of the contest after 12 minutes. Gallagher’s cutback just across the box was knocked away, but only as far as Albie Morgan, whose rasping drive was blocked.
Then came the Charlton breakthrough. Centre-back Tom Lockyer collected the ball inside the Hull half and slipped in Jonathan Leko, whose ball across the box seemed to strike the hand of the sliding Jordy De Wijs before going behind.
Despite feverish home protests, they did not have to wait long for their mood to improve as Gallagher’s resulting delivery was nodded home by Pratley.
It was 1-1 early in the second half. After Bowen had seen a shot blocked just moments earlier, the striker tapped in after an inviting cross from Kamil Grosicki.
The Charlton response was almost immediate. The exciting Leko jinked his way down the right wing and towards the Hull box on the hour mark. His swept ball across evaded Macauley Bonne, but Sarr was on hand to score his second of the campaign.
Lockyer’s impeccable sliding tackle nipped the ball off Grosicki’s toes with the Pole poised to shoot. Hull penalty protests were then waved away after Jackson Irvine looked to have caught a stray boot from Pratley before Bowen’s swivelled volley was tipped away.
As the seconds ticked down, it looked as if the Londoners would hang on for three points, but minutes after Phillips had been at his agile best to paw another effort away, he became the victim of the cruellest ending, as substitute Lewis-Potter’s header trickled out of the 24-year-old’s reach.
Charlton: Phillips, Lockyer, Pearce, Sarr, Pratley, Matthews, Morgan (Oshilaja 67), Gallagher, Purrington, Leko, Bonne (Taylor 81). Unused substitutes: Ledley, Solly, Maynard-Brewer, Vennings.
Hull City: Long, Lichaj, Burke, De Wijs, Elder (Lewis-Potter 63), Bowen, Batty (Bowler 46), Da Silva Lopes, Grosicki, Irvine, Eaves (Honeyman 77). Unused substitutes: Tafazolli, Ingram, Kingsley, Pennington.
Referee: A Davies (Hampshire).