The 23-year-old striker, on loan from Al Hilal, pounced on a sloppy pass from defender Daniel Ayala and slotted a fine finish past Darren Randolph.
Boro forward Martin Braithwaite should have levelled at Molineux before the break, but headed wide while unmarked.
Britt Assombalonga was denied by goalkeeper John Ruddy as Boro pressed late on and Wolves held on for victory.
Wolves' new manager Nuno Espirito Santo handed starts to seven summer acquisitions, including the Championship's record signing Ruben Neves in midfield.
Finding a prolific striker was one of Nuno's priorities ahead of the campaign, after midfielder Dave Edwards and winger Helder Costa, missing through injury, topped Wolves' scoring charts last season.
And it was former Brazil under-17 player Bonatini who made the difference with the most composed of strikes after some terrible defending.
Ayala attempted to pass the ball to Ben Gibson, but it was woefully short allowing Bonatini to nip in and place his effort into the bottom corner.
Middlesbrough also struggled to find the back of the net in 2016-17, scoring just 27 times as they were relegated from the Premier League.
New boss Garry Monk started three of his new forwards - Ashley Fletcher, Assombalonga and Denmark international Braithwaite - but they could not find a way through a resolute Wolves defence.
Wolves head coach Nuno Espirito Santo:
"It was a tough game and in the first half we played very well. We controlled the game and this is the way we should work.
"I think that we deserved the three points and we are pleased with the boys.
"We are still not the final product and every game will be better. This is the line that we want from the boys, always progress, always get better."
Middlesbrough boss Garry Monk:
"In the first half Wolves were the better team and we made too many mistakes and obviously one of them led to a goal.
"But I thought we were the better team in the second half and we upped our level of urgency. We need that at the start of games.
"We had the best chances in the game and on any other day we could have taken one or two of them. That is football and is sometimes the way that it works out."
Match ends, Wolverhampton Wanderers 1, Middlesbrough 0.
Second Half ends, Wolverhampton Wanderers 1, Middlesbrough 0.
Adam Forshaw (Middlesbrough) is shown the yellow card for a bad foul.
Foul by Adam Forshaw (Middlesbrough).
Jordan Graham (Wolverhampton Wanderers) wins a free kick on the left wing.
Hand ball by David Edwards (Wolverhampton Wanderers).
Offside, Wolverhampton Wanderers. Matt Doherty tries a through ball, but David Edwards is caught offside.
Foul by Daniel Ayala (Middlesbrough).
Jordan Graham (Wolverhampton Wanderers) wins a free kick on the left wing.
Attempt missed. Cyrus Christie (Middlesbrough) right footed shot from outside the box is just a bit too high.
Substitution, Wolverhampton Wanderers. Jordan Graham replaces Diogo Jota.
Attempt missed. Romain Saiss (Wolverhampton Wanderers) left footed shot from outside the box is too high.
Substitution, Middlesbrough. Rudy Gestede replaces Jonny Howson.
Attempt saved. Patrick Bamford (Middlesbrough) left footed shot from outside the box is saved in the centre of the goal. Assisted by Jonny Howson.
Substitution, Wolverhampton Wanderers. David Edwards replaces Bright Enobakhare.
Romain Saiss (Wolverhampton Wanderers) wins a free kick in the defensive half.
Foul by Cyrus Christie (Middlesbrough).
Attempt blocked. Rúben Neves (Wolverhampton Wanderers) right footed shot from outside the box is blocked.
Corner,  Middlesbrough. Conceded by John Ruddy.
Attempt saved. Britt Assombalonga (Middlesbrough) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Patrick Bamford with a through ball.
Attempt missed. Jonny Howson (Middlesbrough) right footed shot from outside the box misses to the left. Assisted by Adam Clayton following a set piece situation.
Foul by Willy Boly (Wolverhampton Wanderers).
Patrick Bamford (Middlesbrough) wins a free kick on the right wing.
Attempt blocked. Willy Boly (Wolverhampton Wanderers) left footed shot from the centre of the box is blocked. Assisted by Barry Douglas with a cross.
Corner,  Wolverhampton Wanderers. Conceded by Adam Clayton.
Attempt blocked. Bright Enobakhare (Wolverhampton Wanderers) left footed shot from outside the box is blocked.
Attempt missed. Romain Saiss (Wolverhampton Wanderers) left footed shot from the right side of the six yard box is close, but misses to the right. Assisted by Barry Douglas with a cross following a corner.
Corner,  Wolverhampton Wanderers. Conceded by George Friend.
Substitution, Middlesbrough. Adam Forshaw replaces Marten de Roon.
Offside, Middlesbrough. Marten de Roon tries a through ball, but Adam Clayton is caught offside.
Corner,  Middlesbrough. Conceded by Conor Coady.
Diogo Jota (Wolverhampton Wanderers) wins a free kick on the left wing.
Foul by Cyrus Christie (Middlesbrough).
Corner,  Wolverhampton Wanderers. Conceded by Marten de Roon.
Adam Clayton (Middlesbrough) is shown the yellow card for a bad foul.
Diogo Jota (Wolverhampton Wanderers) wins a free kick in the defensive half.
Foul by Adam Clayton (Middlesbrough).
Substitution, Wolverhampton Wanderers. Nouha Dicko replaces Léo Bonatini.
Substitution, Middlesbrough. Patrick Bamford replaces Ashley Fletcher.
Attempt missed. Rúben Neves (Wolverhampton Wanderers) right footed shot from outside the box misses to the left following a corner.
Brazilian Leo Bonatini scored on his debut to give Wolves an opening-day Championship win against Middlesbrough.