The 30-year-old broke the deadlock with a first-half strike that snuck under former Everton goalkeeper Stefan Wessels, before scoring with a neat curling effort with two minutes remaining.
Odense had started the Group K encounter strongly and Djiby Fall twice went close to breaking the deadlock in the opening 20 minutes.
Mark Schwarzer did well to save the first effort and was called into action on a number of occasions during the evening’s play at the Odense Stadion.
The hosts had only lost one of their previous 15 home games in European competition, but the west Londoners remained resolute to secure victory.
Heading into the Group K encounter, Johnson was named as lone striker in a 4-4-1-1 formation and was one of six changes made to the side that started Saturday’s 0-0 draw with West Brom.
Fulham’s Danish opponents named four players with Premier League experience in their starting XI, including former Manchester United and Aston Villa midfielder Eric Djemba-Djemba.
Odense came into this evening’s match on a poor run of form having lost three successive matches, including a 4-1 home defeat to FC Midtjylland on Sunday.
However, Henrik Clausen’s side have impressed in Europe and had their first shot within a minute when Bashkim Kadrii skewed a volley wide.
While Odense goalkeeper Wessels was forced to save goalbound efforts from Pajtim Kasami and Clint Dempsey within the opening 10 minutes, the home side dominated the early exchanges.
Djemba-Djemba fired a 20-yard drive just wide and only a superb one-handed Schwarzer save prevented Fall breaking the deadlock in the 12th minute.
The latter again came agonisingly close to scoring eight minutes later but the Senegal international’s acrobatic volley from Andreas Johansson’s cross went just wide.
Fulham were being pinned back by their hosts but looked dangerous on the counter-attack, going close in the 27th minute.
After neat play between Philippe Senderos and Johnson, the ball fell kindly to Dempsey in the six-yard box and only Tore Reginiussen’s last-gasp block prevented a certain-looking goal.
The Cottagers were beginning to find their feet as the first half wore on and, after Dempsey blazed over, Wessels had to thwart Brede Hangeland from a corner.
The visitors were getting ever closer and a powerful Dempsey header was sneaking in before Djemba-Djemba’s goalline clearance.
Fulham’s pressure eventually paid dividends in the 36th minute when Johnson latched onto a ball from Dempsey and struck a shot that snuck under Wessels.
Fall and Kadrii both blazed wide attempts to equalise wide shortly after, allowing the visitors to go in boasting a half-time lead.
Odense looked rejuvenated after the break and, aside from a Kasami drive, dominated the first 10 minutes.
Djemba-Djemba thrashed over and Johansson saw a shot flash just wide after Schwarzer saved well from Kadrii.
Damien Duff managed to wriggle free and force Wessels to save at the other end, before the home side returned to the attack.
Senderos was booked for a 63rd-minute foul on Fall as the home side threatened to break, before the striker was replaced four minutes later by Peter Utaka – brother of former Portsmouth forward John – in a bid to force an equaliser.
Shortly after the change, Kalilou Traore received a yellow card for a two-footed challenge on Matthew Briggs that saw the left-back receive treatment.
The youngster recovered from the injury and had to defend immediately as Odense pressed for an equaliser.
Schwarzer was forced into action to stop substitute Utaka before Johnson wrapped up victory with his second of the evening.
The striker showed a good touch to control a long ball before curling the ball past Wessels in the 88th minute.
Odense’s evening got even worse moments later when Traore was sent off for a second booking.