Zack Kassian and Leon Draisaitl scored in the first period, and Connor McDavid had two assists for the Oilers (19-13-4), who were 0-3-1 in their previous four games.
"We wanted to get a good start and a good end," Edmonton coach Dave Tippett said. "We wanted to win, and we came in and our guys were really focused today. Even in the morning skate, you could tell it was a real business-like approach to it, which was good.
"As a coaching staff, we kind of let them do their thing today and talked a little bit about it, but it was mostly those leaders in that room that said we are going to get the job done tonight."
WATCH: [All Oilers vs. Stars highlights]
Tyler Seguin scored in the third period to end his 11-game goal drought, and Ben Bishop made 26 saves for the Stars (19-12-4), who had their point streak end at five games (4-0-1).
"With three [games] in four [nights], there's an excuse there if you want it," Seguin said. "I still think we had an opportunity to win tonight's game. It was a team we thought we could beat. We had a lot of penalties and maybe a couple of bad bounces.
"We would've liked to have had more shots and test the goaltender a bit more than we did. That's hockey sometimes."
Kassian scored from the slot off a pass from McDavid at 8:07 to give the Oilers a 1-0 lead.
Draisaitl scored a power-play goal from below the right face-off circle off a no-look, backhand pass from Alex Chiasson at 14:13 to make it 2-0.
"I thought we showed up to play in the first period," Chiasson said. "We got off to a good start and then power play and penalty kill type of game. We stayed with it through 40 minutes and found a way to get two points on the road. That was much needed from us."