The Germany international, who joined Dortmund from 1860 Munich in 2015, will complete a reported €20million ($22.5m) move following a medical.
Weigl started 12 times in the Bundesliga in the first half of the season but requested the move, Dortmund sporting director Michael Zorc revealed.
"Julian came to us with this wish and we agreed - also because of his services to the club," Zorc said. "We wish him all the best for his future."
The 24-year-old Weigl said on Dortmund's website: "I would like to thank my team-mates, BVB employees and all fans of this great club for a great time, and I will always carry Borussia Dortmund in my heart."
Weigl was part of the Dortmund team that won the 2016-17 DFB-Pokal and 2019 DFL-Supercup.
He leaves the club fourth in the Bundesliga table - seven points off the top - just days after they completed the first high-profile capture of the window in Salzburg sensation Erling Haaland.
Benfica are top of the Primeira Liga and face Shakhtar Donetsk in the Europa League, having dropped out of the Champions League.