The youngster gave Gladbach the lead within the first 10 minutes, though the Billy Goats came back in the second half to make the hosts work for the three points.
Both teams maintained largely similar starting line-ups to their previous outings. André Schubert made just one changed to the side that lost to HSV, bringing in Nico Elvedi for the ill Martin Hinteregger. As for Peter Stöger, replaced Mergim Mavraj and Simon Zoller for Filip Mladenovic and Yuya Osako.
Exciting opening sees Dahoud strike first
Gladbach began strongly, but it was an even and open 10 minutes at Borussia-Park. Köln were trying to work their way through the home defence, while the Foals were finding gaps with more direct play. Oscar Wendt had the first real shot at goal, though it was well gathered by Timo Horn.
The signs were there that there would be an early opener in the game, and Mahmoud Dahoud duly obliged. The youngster was played in by Raffael, who showed great skill and vision to find space and then Dahoud. The Billy Goats' midfield failed to track back, and a calm finish into the bottom corner inflicted their punishment.
Chances then followed for both sides, as a powerful run by Yannick Gerhardt break into the box before Andreas Christensen made a vital interception. Gladbach responded and Wendt again went close, driving a cross-cum-shot across the face of Horn's goal.
After that, the game began to settle down and the pace was not quite as frantic as before. Schubert's side were still dominant and confident in possession, but Köln had killed the majority of their momentum and set about beginning to move forward with more purpose.
There were hopeful efforts from both Lars Stindl and Dahoud before the break, while Johnson had a shot deflected narrowly over the bar. The last meaningful opportunities also went Gladbach's way as Havard Nordtveit met a late free-kick and Granit Xhaka headed at goal from a corner. Neither managed to find the back of the net, however, and the visitors had somehow managed to keep it to just one goal conceded.
Gladbach hang on for all three points
Whatever Stöger said at the break clearly didn't have the desired effect, as his side became even more open at the back. Stindl had a goal disallowed by Knut Kircher after pushing Dominique Heintz in the back, while he found Horn in top form following a phenomenal run by Thorgan Hazard. Xhaka then came close to adding to the lead, with his screaming shot narrowly going wide.
Finally, however, the visitors finally began to create chances. Half-time substitute Milos Jojic earned all three, first testing Yann Sommer from range with a swerving drive from range. The Swiss stopper dealt with it well before he collected the rebound and forced another save. The third was the most impressive of all, as Sommer sprawled to his right to keep out Jojic's curling effort.
With the final 20 minutes seemingly set for a grand-stand finish, it was anything but to begin with. Fouls, cards and general poor play dod not resemble the play on show early in the second. It was some steady defending that kept things interesting, though a stunning stop from Sommer to tip Mathias Lehmann's powerful shot over was a highlight. The resulting corner brought another opportunity but Anthony Modeste's header was stopped on the line.
Despite a late push from their opponents, Gladbach held on for the three points to move up to fifth. The Billy Goats stay ninth, and will hope to bounce back against Hertha BSC next weekend.