The stalemate left Germany on top of Group C on goal difference with both sides on four points from two matches.
Poland’s Arkadiusz Milik had the best chance when he bundled the ball wide from point-blank range early in the second-half.
Germany’s Jerome Boateng complained that his side had been “too rigid”, but agreed that a draw was a fair result from a tightly contested encounter.
“We can be happy with the nil-nil,” Boateng said, but he criticised his side’s lack of attacking punch.
“We didn’t take the game to our opponents, we weren’t dangerous enough and we have to improve that or we won’t get far,” he told ZDF.
“We’ve now got to make sure we win the last group game so that we go through as group winners.”
Poland’s superstar Robert Lewandowski was kept quiet by his Bayern Munich teammate Boateng, but was content to hold the world champions.
“We’re happy with the point. We showed Germany a bit too much respect in the first half,” he said.
“It’s a pity that we didn’t get the goal, but that’s football and it’s not a bad result for us.”
Their opponents will be Northern Ireland, whose 2-0 win over Ukraine earlier Thursday leaves Michael O’Neill’s men just a point behind the leaders ahead of the final group game in Paris on Tuesday.
Poland take on Ukraine in Marseille in their final pool match with a draw enough to seal their place in the knockout stages.
Poland had only beaten Germany once in 20 previous meetings, but that came in qualifying for Euro 2016 and the Poles were full of confidence having won their first ever European Championship finals match against Northern Ireland on Sunday.
– Return to night of trauma –
Germany were playing at the Stade de France for the first time since they were caught up in the November 13 militant attacks in Paris.
Die Mannschaft were forced to spend a traumatic night in the dressing rooms at France’s national stadium when a series of jihadist attacks across Paris left 130 dead on a night they faced the French in a friendly.
However, the emotional return did not seem to affect Joachim Loew’s side. They made by far the better start as Mario Goetze headed just over from Julian Draxler’s cross, whilst Toni Kroos also failed to hit the target as he burst into the box.
At the other end, Lewandowski was kept in close check by Boateng and the returning Mats Hummels — playing in his first game for a month due to a calf injury.
A drab end to the first-half was quickly forgotten by a fast start to the second period.
The hordes of Polish supporters watched in amazement when on 48 minutes Milik — scorer of the only goal against Northern Ireland — somehow failed to turn home Kamil Grosicki’s dangerous cross from barely a metre out.
Poland goalkeeper Lukasz Fabianski was not forced into a save in the first-half as he deputised for the injured Wojciech Szczesny.
However, the Swansea City stopper was finally called into action as Goetze fired straight at him when well-placed inside the area.
Milik drove a well-worked free-kick just wide before Boateng produced a miraculous last-ditch challenge to deny Lewandowski as Poland began to look the more threatening.
Ajax striker Milik fluffed his lines again when he failed to make a clean contact when picked out again by Grosicki inside the box.
Yet, Fabianski then produced a stunning stop to turn Mesut Ozil’s fierce strike from the edge of the box over the bar.
Loew introduced forwards Andre Schuerrle and Mario Gomez to bring more of a cutting edge to Germany’s attacking play in the final quarter.
But a lacklustre German display rarely looked like reaping all three points as they had to settle for a point.