Norway's Riiber had prevailed in seven of his previous eight races this campaign but had to settle for second in Italy, a day after recording his first victory at the venue.
It looked as though he would secure the weekend double-header after leading proceedings following the ski jump element of the men's individual Gundersen 10km event.
But a far from flawless cross-country saw him pipped to the line by Geiger – who came from 52 seconds behind and 12th place in the standings to take victory in 26:20.8 minutes.
A superb sprint was the foundation of the win with the top four separated by less than a second, Riiber coming 0.4 seconds back in silver-medal position.
Joergen Graabak and Fabian Riessle battled for the last spot on the podium and needed a photo finish to separate them, with Norway's Graabak getting the nod over his German counterpart.
Riiber's 145.1 jump points was more than five clear of the rest of the field, earning him a 22-second lead over second-placed Manuel Faisst heading into the 10km cross-country.
But he wasn't able to hold on as gold eluded him for just the second time since the season opener, with Geiger the only other man to prevail in 2019-20.
The leader's yellow jersey still belongs to the 22-year-old, however, with a total of 860 as the halfway point approaches.
Geiger sits in second place, almost 300 points adrift, while Graabak rounds off the top three with 571 points to his name.