Tsvetan Sokolov had 28 points, including four aces, in ninth-ranked Bulgaria's 25-22, 29-27, 13-25, 25-23 win to go up 2-0 in pool play. Bulgaria swept Britain in its opening match.
Zbigniew Bartman had 21 points for No. 3 Poland, which dropped to 1-1 in the pool after defeating Italy 3-1 in the opener.
Earls Court was filled with red-clad Team Poland fans and festooned with hundreds of Polish flags, many inscribed with the names of different cities.
The fans were quieted when Bulgaria took the first two sets. But Poland rebounded in a big way to dominate the third and deny Bulgaria the sweep.
Bulgaria held off Poland in the final set, winning the mach on Viktor Yosifov's kill.
The Polish players appeared frustrated throughout the match. Poland has been on the upswing since hiring accomplished Italian coach Andrea Anastasi early last year. Team Polska won the recent World League, beating top-ranked Brazil three times in the early round and again in the finals.
After the match, Anastasi put his hands on his hips and shook his head.
Poland, which won the Olympic gold medal in 1976, finished fifth in Beijing.
The Bulgarian team came to London in disarray. After the team earned an Olympic berth at a qualification tournament in Sofia, the coach and a top player suddenly resigned to protest their country's leadership of the sport.
Coach Radostin Stoychev and spiker Matey Kaziyski have called for the resignation of Bulgarian federation chief Dancho Lazarov.
Bulgaria was also involved in controversy in Beijing, when team captain Plamen Konstantinov suddenly went home for a drug test, spurring rumours about possible doping. He missed three matches.
In the earlier match on Tuesday, Serbia defeated Tunisia 3-1 (25-15, 25-21, 20-25, 25-18).