Markus Rosenberg netted the only goal of the game as Malmo picked up their first points in this season's Champions League after defeating Shakhtar Donetsk 1-0 in Group A.
Rosenberg's first-half effort proved to be the difference between the sides at the Swedbank Stadion, although the winning margin could have been far wider.
Shakhtar dominated for most of the first half, but after conceding were unable to trouble the hosts, who squandered countless chances after the break, including a missed penalty from Nikola Djurdjic.
However, the visitors battled back late on as Alex Teixeira had an effort disallowed for offside and then Taras Stepanenko fired wide from a few yards out.
The result means Shakhtar's chances of qualifying for the knockout stages are extremely slim, while Malmo are third, four points behind Real Madrid and Paris Saint-Germain ahead of the return fixture in a fortnight.
Despite being largely on the back foot early on, Malmo went ahead after 17 minutes.
Pa Momodou Konate skipped past three challenges as he cut in from the left wing before squaring to Rosenberg, who picked his spot in the left-hand corner for his third goal in the competition this season.
The opener came as a wake-up call to Shakhtar, who had completely dominated possession up to that point.
An incisive cross from Darijo Srna picked out Oleksandr Gladkiy and he took a touch before seeing his shot blocked behind for a corner after 25 minutes.
From the resulting set-piece, Teixeira's strike was handled by Rosenberg, but the strong protests for a penalty were waved away by Greek referee Tasos Sidiropoulos.
Teixeira was involved again a minute later as he managed to cut the ball back in from the goal-line, but his Brazilian counterpart Fred fired wide of the upright as the pressure increased.
Captain Srna then came close with a free-kick from 20 yards out, but it curled just wide of the upright after 37 minutes.
Malmo continued to look dangerous on the counter, though, and Andriy Pyatov made an excellent save to deny Jo Inge Berget from point-blank range, ensuring the visitors went into the break just a goal behind.
Berget came agonisingly close again just after the interval when he was fed by Djurdjic, but the Norwegian's dinked effort bounced just wide.
The influential Berget then won his side a penalty after 55 minutes when he was wrestled to the floor by Srna, who was lucky to escape with just a yellow card.
Djurdjic, however, fluffed his lines from 12 yards as his effort was easily kept out by Pyatov, who sprung to his right to divert the ball wide.
The hosts hit the woodwork as Vladimir Rodic's low free-kick was missed by everyone in the box, before flicking off the bottom of the post.
Shakhtar began to battle back into the contest and Teixeira fired the ball home 11 minutes from time, but the effort was ruled out after the initial pass to Eduardo had caught the substitute offside.
In the final stages, a sweeping move down the right saw Srna's cross flicked on by Viktor Kovalenko to Stepanenko, but the midfielder could not get a clean strike away as any hope of a draw was ended.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.