Horcoff was the Oilers' captain but at 34 the centre was out of place as part of a young core featuring Taylor Hall, Jordan Eberle, Ryan Nugent-Hopkins and Nail Yakupov.
General manager Craig MacTavish said at the end of the season he planned to trade Horcoff and gave the veteran the opportunity to talk to other teams.
The Oilers received defenceman Philip Larsen and a 2016 seventh-round pick in the trade.
The Stars got Horcoff as part of a revamp by general manager Jim Nill, who acquired centres Tyler Seguin and Rich Peverley from the Boston Bruins in a deal earlier Thursday that sent Loui Eriksson and others to the Boston Bruins.
Nill said centre was Dallas' weakest position, and this trade further addressed that concern.
Horcoff has two seasons left on a contract that counts US$5.5 million against the salary cap and pays him a total of $7 million.
Horcoff was a career member of the Oilers, who took him 99th in the 1998 draft. In 796 NHL games — all with Edmonton — Horcoff had 162 goals and 285 assists. He had seven goals and 12 assists in the Oilers' run to the Stanley Cup final in 2006.
The 23-year-old Larsen played in 32 games for the Stars this past season, recording two goals and three assists. He's an RFA who previously counted $1.025 million against the salary cap.