After Kohlschreiber and Florian Mayer picked up wins for Germany in Friday's singles rubbers, Brazil pulled the score back to 2-1 in Saturday's doubles, before Brands's decisive win.
The 31-year-old, top-seeded Federer won 3-6, 6-3, 6-2 against the world number 58 Daniel Brands, who was celebrating his 26th birthday, to reach the third round of a tournament he last played in 2008.
Nadal, who had lost only 14 sets in 53 previous matches at Roland Garros, fell behind when he was broken in the ninth game and was on the verge of digging a deeper hole on Monday.
The world No.10 from France also produced an encouraging performance in overcoming Daniel Brands, the German giant-killer, 7-5, 7-5.