Belgium goalkeeper Thibaut Courtois was at fault for the first goal, inexplicably allowing Sabiri's inswinging free-kick to beat him at his near post with 17 minutes to go.
But the whole Belgium side paid the price for a ponderous performance, with Morocco capping a magnificent second-half display when Aboukhlal fired Hakim Ziyech's cutback into the roof of the net in stoppage time.
That sparked wild celebrations in the stands of Al Thumama Stadium from thousands of Morocco fans, who had created a raucous atmosphere from the start.
The result means Morocco move above Belgium on four points, with Croatia now topping Group F on goal difference after their 4-1 win dashed Canada's hopes of progressing.
Few surprises had seemed on the cards early on. After surviving a high-tempo and helter-skelter approach from Canada - their first opponents in Group F - Belgium's initial job this time was to break down Morocco's massed defence.
They managed it within the first five minutes, when Thorgan Hazard sent Michy Batshuayi running clear, but he was denied by Munir Mohamedi, a late replacement in the Morocco goal after Bono was taken ill in the warm-up.
It seemed that would just be the start of some sustained Belgium pressure, but while they continued to dominate possession, further clear-cut chances were few and far between.
Roared on by their noisy fans, who were bouncing all around Al Thumama Stadium in great numbers, Morocco comfortably kept them at bay and began to grow into the game themselves.
They thought they had taken the lead just before half-time when Ziyech's free-kick eluded Courtois, but the video assistant referee (VAR) showed Romain Saiss was offside and deemed to be interfering with play after running across the Belgium goalkeeper's line of sight.
Roberto Martinez's side did not improve after the break, only managing shots from distance from the ineffective Eden Hazard and substitute Dries Mertens.
Morocco, meanwhile, were becoming as lively as their supporters in the stands and went close to taking the lead when Sofiane Boufal cut in from the left and sent a shot bouncing wide.
They kept coming forward and got their reward when Sabiri's clever free-kick found Courtois dozing at a set-piece again. This time, there was to be no VAR reprieve to save him.
The closest Belgium came to an equaliser was when Jan Vertonghen headed wide, before Aboukhlal made sure of a stunning victory by finishing off a swift break.
Belgium's stuttering win over Canada in their opening game means their route to the last 16 is still open, albeit less straightforward than was anticipated.
But this was another reminder that the generation of players that reached the semi-finals of the World Cup four years ago are nearing the end of the road.
They were disjointed going forward, with Batshuayi ineffective in attack and Romelu Lukaku only fit enough for a cameo appearance in the closing moments.
Even Manchester City star Kevin de Bruyne was unable to add any inspiration in midfield and, at the back, veteran pair Vertonghen and Toby Alderweireld were left petrified by the pace of Morocco's attack when their side were chasing the game.
They looked nothing like a side supposedly ranked number two in the world and were made to look second best by Morocco, who sit 20 places lower.