The South African, who finished seventh on the opening stage on Thursday, came sixth on the 202km stage from Marburg, while Norwegian Alexander Kristoff sprinted to victory ahead of Italian Sonny Colbrelli and Belgian Yves Lampaert.
Kristoff said he was suffering all day and that he was dropped earlier but his team managed to bring him back.
“In the sprint I felt good but Colbrelli came fast and I was a bit boxed in by Ben Swift but I managed to come out and then had enough to go around.”
Britain’s Swift took fourth with Belgium’s Jasper Stuyven finishing in fifth.
Kristoff, who rides for UAE Team Emirates, claimed the overall lead from Pascal Ackermann (Bora-Hansgrohe), who, unfortunately, lost contact to finish 94th.
“I think [stage three] is going to be even harder so it’s going to be tough to maintain the lead but I will try for sure, said Kristoff”
View more results below.
Stage two results
1. Alexander Kristoff (Nor) UAE Team Emirates 4:21:04
2. Sonny Colbrelli (Ita) Bahrain-Merida
3. Yves Lampaert (Bel) Deceunick-QuickStep
4. Ben Swift (GBr) Team Ineos
5. Jasper Stuyven (Bel) Trek-Segafredo
6. Reinardt Janse van Rensburg (RSA) Dimension Data
7. March Hirschi (Swi) Team Sunweb
8. Timo Roosen (Ned) Team Jumbo-Visma
9. Tom Skujins (Lat) Trek-Segafredo
10. Jens Keukeleire (Bel) Lotto Soudal
123. Jay Robert Thomson (RSA) Dimension Data
1. Alexander Kristoff (Nor) UAE Team Emirates 8:10:18
2. Sonny Colbrelli (Ita) Bahrain-Merida +0:00:10
3. Yves Lampaert (Bel) Deceunick-QuickStep +0:00:12
4. March Hirschi (Swi) Team Sunweb +0:00:13
5. Alexey Lutsenko (Kaz) Astana Pro Team +0:00:14
6. Tom-Jelte Slagter (Ned) Dimension Data
7. Diego Ulissi (Ita) UAE Team Emirates +0:00:15
8. Jasper Stuyven (Bel) Trek-Segfredo +0:00:16
9. Reinardt Janse van Rensburg (RSA) Dimension Data
10. Ben Swift (GBr) Team Ineos
123. Jay Robert Thomson (RSA) Dimension Data +0:34:31