The 32-year-old marked his 700th appearance for the La Liga champions with a goal, becoming the first player to score against 34 different teams in the European elite league, surpassing the former Real Madrid duo, Cristiano Ronaldo and Raul.
Luis Suarez opened the scoring for Barcelona when he latched on to a pass from Messi in the 29th minute.
Suarez then returned the favour four minutes later to the five-time Ballon d’Or winner after a mistake from Hummels.
Messi topped his scintillating performance by setting up Antoine Griezmann for the third-goal in the 67th minute.
The visitors pulled one back in the 77th minute through England international Jadon Sancho, but it was too late to make a comeback.
After the game Hummels eulogized the Argentina international as the best player he has ever seen.
"In top form, Messi is the best footballer I have ever seen – period," The 30-year-old said after Dortmund’s defeat.
"We were not good enough to beat Barcelona today. We only created three or four real chances."
Hummels added: "It was not a bad game, but not a very good one. Barcelona were excellent though. Messi is always dangerous, of course”
"We had a really bad spell after that first goal, with my bad pass that led to their second goal."
After this latest defeat, Dortmund have to beat Slavia Prague and hope for a favourable result between Inter Milan and Barcelona on final matchday.