Arkadiusz Milik missed the best two chances of a match that brought the first goalless draw of Euro 2016.
Poland held Germany to the first 0-0 draw of Euro 2016 on Thursday as the world champions struggled to break down dogged opponents who will be satisfied with a point.
The result means both sides, who won their opening games, need a point in their final Group C matches against Ukraine and Northern Ireland respectively on Tuesday to guarantee reaching the last 16.
Ukraine, who have yet to get a point, cannot progress and will finish bottom of the section.
Germany were playing their first game at the Stade de France since the deadly November attacks in Paris.
They came out zipping the ball around early on, poking and prodding at the Poles but, with focal point Mario Goetze consistently dropping off, they lacked conviction in the final third.
The two neighbours, who last met at a European Championship in a feisty game in 2008, failed to conjure a shot on target in the first half in front of a packed and boisterous crowd.
The only notable chances fell to Goetze, who drifted a header over the bar in the fourth minute, and Toni Kroos, with a toe-poke in the 15th minute that went wide.
The Germans, eyeing a fourth European title, were clearly frustrated. Sami Khedira and Mesut Ozil were booked needlessly after fouls in the midfield in the first half before Jerome Boateng joined them in the referee's notebook after 67 minutes.
FASTER TEMPO
The second period had to have a faster tempo and it proved to be the case. The Poles came out firing on all cylinders and almost took the lead just after the break.
Kamil Grosicki's cross found Arkadiusz Milik, who appeared to only have to guide the ball into the net, but he barely connected and it went agonisingly wide in front of the passionate Polish supporters.
Seconds later Poland keeper Lukasz Fabianski held on to a Goetze shot in the box, the first on target in the game.
Poland began to take the ascendancy and had the better chances with Milik shooting wide after striker Robert Lewandowski had tapped a free-kick to him after 57 minutes.
The Bayern Munich forward then saw his club colleague Boateng block a shot destined for the goal.
With the game finally opening up, Ozil's shot was tipped over the bar spectacularly by Fabianski in the 68th. The midfielder then turned provider, putting in substitute Andre Schuerrle who shot straight at Fabianski.
But, despite a string of half chances in the final 20 minutes, neither side looked like finding the breakthrough.