Stefan Kiessling scored first before setting up Sam to give Leverkusen a two-goal lead at the interval.
Martin Stranzl and Juan Arango brought Gladbach back on terms, but Sam's second and a Gonzalo Castro goal ensured Sami Hyypia's men extended their perfect start to the season.
Gladbach started the game well and Arango created a few good openings as the visitors showed no fear.
Arango then fell foul of a harsh penalty decision as he was adjudged of handling the ball in the area, even though he had his back to the ball.
Kiessling stepped up to score his 100th goal in a Leverkusen shirt, placing the ball just beyond the reach of Gladbach goalkeeper Marc-Andre ter Stegen.
Minutes later, Sam doubled Leverkusen's advantage thanks largely to Kiessling, who raced through on goal and pulled the ball across to his strike partner having lured Ter Stegen out of his goal. Sam did the rest.
Leverkusen appeared to be in control of proceedings but Gladbach did not give up and Stranzl reduced the arrears in the 54th minute, finishing a typical counter-attack from 10 yards out.
Three minutes later, Arango brought Gladbach level when he pounced on the ball after Bernd Leno fumbled the ball following a good spell of pressure for the visitors.
Leverkusen were not having it, though, and Kiessling and Sam combined yet again to give them the lead, Sam beating two defenders before shooting past Ter Stegen.
Castro added the finishing touch to Leverkusen's third win of the season when he picked his spot in the bottom corner from Sam's pass.