The home side side had the better of the opening stages as the Superliga side struggled to settle into their usual stylish stride. The visitors especially struggled to contain the attacking power of Serginho who created plenty of problems for the FC Copenhagen rearguard.
The 24-year old Portuguese winger was brought down on the edge of the box after 39 minutes, but the 21-year old Isak Jensen, who has scored three goals on direct free-kicks this season, couldn't find the target.
Jensen was in the center of action again just before half-time, when he pleaded for a penalty, when he was brought down on the edge of the box but had to settle for a free-kick, and Serginho's stinging drive went over the bar as the first 45 minutes ended goalless.

Both sides had huge chances to break the deadlock straight after the interval. Two minutes after the break Amin Chiakha's close-range header at the back post was blocked at the last minute and then five minutes later Diant Ramaj pulled off a great save to deny Anosike Ementa, when he had the goal his mercy after a great individual action from Isak Jensen.
But after 58 minutes FC Copenhagen finally got on the scoreboeard, when Jordan Larsson played a clever one-two with Swedish compatriot Viktor Claesson and Larsson finished off the move with a clinical finish past Viborg-keeper Lucas Lund.
0-1 would put Viborg in a poor situation before the return leg in Parken and consequently the home side threw more men forward in their attempt to restore parity. The home side also managed to create a few chances but the finishing wasn't up to par and FC Copenhagen held on for a relatively easy 1-0 win.
The return leg will be played in the Parken stadium on 8 May. The winner will face either Brondby or Silkeborg in the final. The first semi-final between the two teams ended 3-3 in Copenhagen.