Poland were widely expected to qualify for the knockout rounds but after suffering a seventh loss in their last nine World Cup matches, FIFA's eighth-ranked team are in danger of making an early exit.
Thiago Cionek's own goal, the defender deflecting in a shot from Idrissa Gueye, handed Senegal the lead in the 37th minute.
Senegal doubled their lead when M'Baye Niang took advantage of a mix-up between Grzegorz Krychowiak and Wojciech Szczesny to finish with ease.
Adam Nawalka's side set up an exciting finish when Krychowiak somewhat made amends for his error by heading home a Kamil Grosicki free-kick, but they could not find a late leveller.
Poland will need to make amends when they take on Colombia - who surprisingly lost to Japan on Tuesday - while Senegal have qualification for the next phase in their sights.
— OptaJean (@OptaJean) June 19, 2018
A slow start at Spartak Stadium saw neither side gain control of the midfield until Senegal had the first clear chance in the 18th minute, Niang dragging a poor effort wide after a break.
The African side - who shocked France on their World Cup bow in 2002, their only previous appearance - gradually started to dominate but the opening goal had a large slice of good fortune.
Patient passing produced an opportunity for Gueye, albeit his 20-yard strike took a huge deflection off Cionek to wrong-foot Poland goalkeeper Szczesny.
Nawalka sent on Southampton defender Jan Bednarek at half-time - Jakub Blaszczykowski making way on his 100th international appearance - as Cionek's own goal ensured Poland's 32-year wait for a clean sheet at the World Cup goes on.
— FIFA World Cup (@FIFAWorldCup) June 19, 2018
Poland captain Robert Lewandowski was Europe's top scorer in qualifying with 16 goals but when he stepped up to float a 25-yard free-kick over the wall, Khadim N'Diaye acrobatically dived to turn the ball away.
A much-improved Poland continued to threaten and Lukasz Piszczek should have hit the target with a volley at the back post from a deep right-wing centre from Maciej Rybus.
But while the Senegal first was unlucky for Poland, they were architects of their own downfall for the decisive second, handing Niang his first international goal on the hour mark.
Krychowiak needlessly hooked a high ball back towards his own goal from inside the Senegal half and with Szczesny attempting to intercept by coming out of his penalty area, Niang gleefully knocked the ball into an unguarded goal.
— OptaPaolo (@OptaPaolo) June 19, 2018
Arkadiusz Milik should have got Poland back in the game but he slotted a perfect Piszczek cross wide at the near post.
Dawid Kownacki's headed attempt was easily saved late on by N'Diaye but the goalkeeper was beaten by Krychowiak's well-placed header with five minutes to go.
Yet Senegal held on to their advantage in a nervy finish, leaving the Euro 2016 quarter-finalists with plenty to do if they are to qualify from a suddenly wide-open group.
Photo Getty Images. Caption: Senegal celebrate during their Group H game against Poland.