RB Leipzig secured their first ever Champions League victory by holding off a persistent Porto to prevail 3-2 in an entertaining clash on Tuesday.

All five goals came in a chaotic first half as Ralph Hasenhuttl's men overcame poor set-piece defending to leapfrog the visitors into second spot in Group G.

Porto boss Sergio Conceicao dropped Iker Casillas to the bench in favour of Jose Sa and the deputy goalkeeper endured a torrid first half, gifting Willi Orban the opener and seeing Emil Forsberg and Jean-Kevin Augustin also find the net.

Vincent Aboubakar cancelled out the opener with his seventh goal in his last eight Champions League away games and Ivan Marcano made it 3-2 just before half-time after Forsberg and Augustin struck in quick succession.

Neither team was able to produce the same kind of excitement after the restart, Leipzig keeping their nerve to claim all three points in the first ever competitive meeting between the two clubs.

The Bundesliga side also welcomed back Timo Werner as the striker steps up his recovery from a cervical spine blockage.

Leipzig claimed an impressive 3-2 win at Borussia Dortmund on Saturday and were on their way to another victory when Orban opened the scoring inside eight minutes.

The defender swept home from close range after Sa spilled Bruma's initial effort in an inauspicious start for Casillas' stand-in.

Their joy would only last 10 minutes, though, as Porto restored parity with their first real chance of the match when the in-form Aboubakar punished some poor defending with a clinical over-the-shoulder left-foot finish.

Leipzig remained the more positive of the two sides and stunned Porto with two goals in the space of three minutes.

Forsberg buried the first into the bottom-right corner after receiving a defence-splitting pass from Marcel Sabitzer, before Augustin made it 3-1 when he pounced on a fortuitous ricochet off Marcano to race clean through on goal and finish five minutes before the interval.

The first-half drama was not over there as Marcano rose to meet Hector Herrera's header back across goal and reduce the deficit to a solitary goal at the break.

Hasenhuttl's side were denied claims for a penalty on the hour when Portuguese winger Bruma appeared to be held back by defender Felipe, his impeded attempt at a finish hooked off the line by the retreating Marcano.

Augustin fired over with another promising opportunity to seal all three points, before Hasenhuttl turned to Werner with 15 minutes to play.

The Germany international was warmly welcomed back to action after a three-week layoff although his goals were not needed as Leipzig encountered few troubles over the closing moments.