It's a second win on the spin for the German side, which finished runner-up to Bayern Munich in the Bundesliga last season, having made several changes to the team that beat Seattle Sounders 3-1 on Thursday (AEST).
One player who has started both games for Dortmund is Paco Alcacer and he opened the scoring with his second goal in two games after three minutes, after good determined play from Giovanni Reyna.
Liverpool had the better opportunities in the first half and equalised 10 minutes before the break, when Harry Wilson slotted into the bottom corner, after a dummy from Ryan Kent.
Dortmund made nine changes at the interval and two replacements combined to put the eight-time Bundesliga winner ahead as Thomas Delaney finished coolly from Thorgan Hazard's cross.
Five minutes later it was 3-1 when Jacob Bruun Larsen received Marius Wolf's cross, turned in the area and fired into the bottom corner.
The Reds introduced internationals Trent Alexander-Arnold, Jordan Henderson and Virgil Van Dijk among nine changes at the hour mark and pulled a goal back with 15 minutes to play.
Ben Woodburn won a spot-kick which was scored expertly by Rhian Brewster, but they were unable to force an equaliser as Dortmund held firm.
Liverpool's next pre-season fixture is against Sevilla in Boston, while Dortmund faces Udinese next Sunday in Austria.