The visitors trailed to a 42nd-minute goal from Efstathios Aloneftis, but the hosts could not hold out until half-time as Brede Hangeland quickly levelled. Tarik Elyounoussi then put the visitors in front ten minutes from time with a penalty and substitute Joshua King made the points safe three minutes later.
The win moved Norway above Iceland and up to second place in Group E.
The hosts were first to threaten with Georgios Efrem's header bringing a fantastic parry from goalkeeper Rune Jarstein before his opposite number Tasos Kissas denied Tarik Elyounoussi from 12 yards.
Hangeland then met a John Arne Riise free-kick from the right, but saw his header come back off a post. The visitors were growing into the game and Alexander Soderlund had a shot parried by Kissas.
But, despite now being on the back foot, Cyprus took the lead in the 42nd minute as Aloneftis picked out the top corner from inside the area.
However, Norway were level on the stroke of half-time as Soderlund laid the ball off to Hangeland, who finished low into the corner from six yards.
Elias Charalambous was penalised for a foul on King in the area and Elyounoussi stepped up to place the resulting spot-kick into the bottom left corner.
And King put the result beyond doubt three minutes later as he fired low into the net from 12 yards, Elyounoussi this time setting up the goal.