Wayne Rooney normally wears the captain's armband for England, but has been left out of the squad for the match in Dortmund as a knee injury has limited his playing time at Manchester United.
Liverpool skipper Jordan Henderson has deputised for Rooney under Southgate before, however he too is unavailable because of a foot injury.
Southgate has consequently decided to name Cahill as captain, with the centre-back acting as skipper for Chelsea this term with John Terry out of favour in Antonio Conte's 3-4-3 system.
And Southgate says Cahill's conduct on and off the pitch makes him a worthy choice.
"Gary will captain the side," Southgate said at a news conference.
"He is in very good form. He is one of the players in the squad who knows what is needed to win, he has won pretty much every trophy in football.
"This season especially he has grown in stature in the way that he is playing and in confidence in the way that he is using the ball. He has shown real composure in his play.
"He is sometimes overlooked in what he brings to the squad, because he goes quietly about his job and gets on with it.
"You never read anything about him other than what he has done, which is scoring a goal or keeping another clean sheet. They are great habits to have."
Southgate also confirmed that Manchester City forward Raheem Sterling may be rested for the game following a busy week that saw him play against Monaco and Liverpool, with the manager keeping one eye on Sunday's World Cup qualifier against Lithuania.
"Sterling we need to assess," Southgate added.
"He had a heavy week in terms of load, playing in Monaco and against Liverpool.
"I have to balance what is right for Wednesday and what is right for Sunday as well, but we will keep monitoring that."