Toto Tamuz opened the scoring for Hapoel in the 34th minute when his header beat Legia goalkeeper Dusan Kuciak.
But Danijel Ljuboja levelled for Legia in the 67th minute before Marcin Komorowski gave the home side the lead from the penalty spot five minutes later.
The see-saw nature of the game continued as Hapoel substitute striker Mahran Lala then levelled the score, before Radovic gave Legia their first points in Group C with an 89th-minute winner.
Hapoel, who had not won in their previous five European away games, dominated the first-half and it was no surprise when Tamuz broke the deadlock 10 minutes before half-time.
The midfielder climbed the highest to head Gal Shish's cross into the top left-hand corner and give Hapoel a deserved lead.
The goal came after Hapoel were forced into an early change. Midfielder Mahmood Abbas was replaced by Salim Toama in the 12th minute after picking up an injury..
However, Legia had some chances of their own, Bevan Fransman blocking a shot by Ivica Vrdoljak and Hapoel goalkeeper Edel Apoula tipping the ball round the post when midfielder Maciej Rybus took aim from 25-yards.
Legia finally equalised in the 67th minute when Maciej Rybus delivered an inswinging corner from the left and picked out Ljuboja, who made no mistake and levelled the score from close range
The home side then took the lead from the spot when Nosa Igiebor brought down Radovic in the penalty area
Komorowski stepped up and smashed the ball straight down the middle to give Legia a lead they were more than worthy of.
However, Lala levelled the scores again for Hapoel in the 79th minute when Nosa Igiebor's shot was parried by Dusan Kuciak, allowing the substitute to turn in the rebound.
It looked like Hapoel had done enough to salvage a point, but Radovic made no mistake from close range after Ljuboja headed the ball at his feet to earn his side all three points with a late winner.