Akbar remained not out on 43 off 77 balls (4x4, 1x6) and showed nerves of steel at his young age with Rakibul Hossain (9 not out) who hit the winning runs to break into emotional celebrations.
Opener Parvez Hossain Emon top scored with 47 from 79 deliveries and batted through pain after he had to retire hurt when he was batting on 25.
For India, leggie Ravi Bishnoi returned superb figures of 4/30 and was the highest wicket taker (17 wickets) as Yashasvi Jaiswal scored 88 and was also the top-scorer with 400 runs.
Bishnoi also became the highest Indian wicket-taker in U-19 World Cup history.
This was the Indian colts' first loss at this tournament in 12 matches since their defeat against West Indies in the final of the 2016 edition. They have won the U-19 World Cup four times and were chasing a record-extending fifth title.
Openers Emon and Tanzid Hasan were off to a good start chasing 177 after they bowled India out for a paltry total.
Hasan slog-swept Bishnoi for a six in the ninth over as Bangladesh looked to be cruising to the small target.
But 19-year old Jodhpur-born Bishnoi had the last laugh as his third googly in a row had Hasan (17) hole out to Kartik Tyagi at mid-wicket.
Bishnoi continued his good work as another googly in the 13th over forced Mahmudul Hasan Joy (8), who scored a century in the semifinal against New Zealand, to chop the ball onto his stumps.
Bangladesh were suddenly in a spot of bother as just after Joy's dismissal, Emon suffered from cramps and had to retire hurt with the score on 62/2.
There was no stopping Bishnoi and his 'wrong uns' as the 19-year old came back in the 15th over to trap Towhid Hridoy (0) in front after a maiden from Akash Singh in the previous over.
Bishnoi picked up his fourth courtesy a brilliant stumping by wicketkeeper Dhruv Jurel to send Shahadat Hossain (1) back into the hut.
Skipper Akbar and Shamim Hossain then looked to steady the ship but the latter threw away his wicket, getting caught by Jaiswal at sweeper cover off left-arm pacer Sushant Mishra.
Akbar then hit Bishnoi for two back-to-back fours in the 22nd over but once again Bangladesh lost steam when Avishek Das, who was dropped just in the previous delivery, was caught by Kartik Tyagi running in from deep square leg off Mishra.
With Bangladesh reeling at 102/6, Emon came out to bat again braving his injury and joined Akbar in the middle. The pair raised Bangladesh's hopes with a 41-run stand as Emon played through pain.
But Jaiswal's gamble with the ball paid off as he removed Emon (47) who slapped a wide delivery straight to Akash Singh at extra cover. Rain stopped play when Rakibul and Akbar were going strong and batting sensibly and Bangladesh needed 15 runs to win. But as play begun, the pair eased through the gears and ensured there was no further drama.
Earlier, sharp bowling from the fiery Bangladesh pacers and good fielding coupled with some slack running between the wickets led to India folding for 177.
Opener Jaiswal was the standout performer for India, scoring 88 off 121 balls.
He has scored at least a half century in all but one match in this tournament, and ended it as top scorer with a whopping 400 runs.
However, his team mates fell in a pack to Bangladesh who came out all guns blazing.
India were put to bat first after Bangladesh won the toss and openers Jaiswal and Divyaansh Saxena were greeted with a barrage of deliveries angled at the body and cramping them for space.
It took India 14 balls to finally get their first run.
The constant pressure from Sakib and Shoriful Islam eventually did the trick when Saxena flashed at a delivery outside off stump and drove it straight to backward point. Das was the man who got the wicket and it was his first over of the match.
After this came the most stable period of the Indian innings as Jaiswal and Tilak Varma stood their ground to the Bangladesh attack. Runs began to flow and Jaiswal scored his fifth 50 of the tournament. The pair also took India past the 100-run mark and their partnership was worth 94 runs.
It was Sakib who eventually got the breakthrough for Bangladesh with a short delivery that Varma looked to cut. The ball flew into the hands of the fielder at deep backward point.
Jaiswal then found able company in wicketkeeper Dhruv Jorel but ended up falling to Shoriful Islam eight overs later. He cramped Jaiswal for room and his attempted shot flew to short midwicket where Hasan was standing.
India went on to lose their next six wickets for 21 runs in the next nine overs.
Brief scores: India U19 177 in 47.2 overs (Yashasvi Jaiswal 88, Tilak Varma 38; Avishek Das 3/28) vs Bangladesh U19 (170/7 Parvez Hossain 47, Akbar Ali 43; Ravi Bishnoi 4/30)