Dortmund led 2-0 at half-time thanks to goals from Julian Weigl and Julian Brandt, with the England winger assisting the latter.
But Timo Werner drew Bundesliga leaders RB Leipzig level within eight minutes of the second-half with a quickfire double.
Sancho, 19, restored Dortmund’s advantage by netting for the seventh successive game in the 55th minute.
But his night ended prematurely when he hobbled off and was replaced by Lukasz Piszczek in the 71st minute.
LIVE on talkSPORT
Check out all the live commentaries coming up across our network this week…
- Liverpool vs Monterrey (Wednesday, 5:30pm) – talkSPORT 2
- Everton vs Leicester (Wednesday, 7:45pm) – talkSPORT 2
- Manchester United vs Colchester (Wednesday, 7:45pm) – talkSPORT
- Middlesbrough vs Stoke (Friday, 7:45pm) – talkSPORT 2
- Everton vs Arsenal (Saturday, 12:30pm) – talkSPORT
- Aston Villa vs Southampton (Saturday, 3pm) – talkSPORT 2
- Cardiff vs Preston (Saturday, 12:30pm) – talkSPORT 2
- Manchester City vs Leicester (Saturday, 5:30pm) – talkSPORT
- Sheffield Wednesday vs Bristol City (Sunday, 12pm) – talkSPORT 2
England manager Gareth Southgate, who used Sancho prominently in 2019, will hope the injury is nothing serious.
Unfortunately for Dortmund, Sancho’s strike was not the winning goal as Patrik Schick equalised 13 minutes from time.