Dortmund had not conceded in their four competitive games under new boss Thomas Tuchel, but trailed within 13 seconds to Jone Samuelsen's header and were three down within 22 minutes.
Pierre-Emerick Aubameyang started the comeback on 34 minutes.
And Shinji Kagawa, Henrikh Mkhitaryan and Aubameyang's second turned it around after the break.
Dortmund have had to qualify for this season's Europa League after finishing seventh in the Bundesliga last season, leading to club legend Jurgen Klopp's departure as coach.
Mkhitaryan has now scored seven goals in five matches this season.
Elsewhere in the Europa League, Athletic Bilbao, on the back of their 5-1 Spanish Super Cup aggregate win over Barcelona, lost 3-2 to Zilina.
The Basque side led 2-0 at the break in Slovakia but, after their opponents got back into the game, William Alves de Oliveira scored a winner deep into injury-time - his second of the match.
AZ Alkmaar lost 3-2 to Astra Giurgiu, conquerors of Inverness and West Ham in the previous two rounds. Their Dutch rivals Ajax beat Jablonec 1-0.
Southampton drew 1-1 with Midtjylland, with Jay Rodriguez scoring his first goal since March 2014.
Robin van Persie scored with his first touch as Fenerbahce won 1-0 at Atromitos Athens.
Borussia Dortmund came from 3-0 down to beat Norwegian side Odd in a dramatic Europa League play-off first leg.