After leaving the chute last, the Dutch squad completed the 27.6km test against the clock in 28:57.
They were the only ones able to beat the time (29:18) set by Team Ineos, who were the first team to start and remained in the hot seat until Visma finished.
Deceuninck-QuickStep were one of the teams who came close to beating Ineos but failed by less than a second to take third.
Two other teams who were also in the hunt were Sunweb (fourth in 29:23) and Katusha-Alpecin (fifth in 29:24).
Teunissen, who leads the standings in 4:51:34, said his team were flying on the stage.
“It was unbelievable. It’s not that I’m getting used to winning stages at the Tour de France but it’s two out of two now and it’s really, really nice.”
Teunissen’s teammates Wout Van Aert and Steven Kruijswijk moved up to second and third in the overall standings.