The pair had made a gap on the race’s final climb on an elite front group which contained the likes of Tom Boonen, his Etixx-Quick Step teammates Niki Terpstra, Zdenek Stybar and Matteo Trentin, as well as Ian Stannard (Sky) and Fabian Cancellara (Trek-Segafredo).
World champion Sagan accelerated on the Karnemelkbeekstraat with around 31km remaining, with only Kwiatkowski able to stay with him.
The pair quickly stretched out a gap of around 30 seconds on the elite chasing group, and that gap continued to hold until the final few kilometres, until Boonen took up the chase in earnest after a huge amount of work by Terpstra.
But they could only narrow it down to within 10-15 seconds, and the leading duo looked set to fight it out as they rode under the flamme rouge.
Former world champion Kwiatkowski took up the advantageous position of sitting behind the man in the rainbow bands, taking the opportunity to make a long-range sprint for the line with just under 500m to go after what looked like a lapse in concentration from Sagan.
Their was nothing he could do to catch the Pole though after he’d made his move, with Kwiatkowski crossing the line to take Sky’s second consecutive win in the E3 Harelbeke after Geraint Thomas’s victory in 2015.
Ian Stannard rounded off a great day for British squad, who also took victory through Wout Poels at the Volta a Catalunya, by sprinting to third place from the chasing group ahead of Cancellara.
The action had really kicked off on the Taaienberg, around 70km from the finish, with Boonen putting in enough of an effort to draw out an elite group which began to chase the day’s original breakaway.
Initially, five-time E3 winner Boonen had caused two groups to form behind the break up the road, with his Etixx dominated group second on the course and a chasing group led by Sky’s Luke Rowe and Stannard chasing on behind.
Watch: Servais Knaven talks Kwiatkowski’s E3 win
Cancellara had made it into that first group, but rapidly saw his chances of a fourth win at E3 slip away as he suffered a mechanical. With team cars some way back stuck behind the peloton, the Swiss had to simply wait on the side of the road for a replacement bike.
Once he was back on two wheels, with 67km remaining, Cancellara utilised his teammates to help pace him back to the to Boonen group which was now well over a minute up the road.
Sky had managed to catch the Boonen group in the meantime, with the breakaway brought back, and by the time they reached the top of the Oude Kwaremont with 37km to go, Cancellara had completed a mammoth effort to make it back to the front of the race.
And while he had his teammate Jasper Stuyven for company, there was little Cancellara was able to do to help bring back the duo that then went out on the attack.
In the end he sprinted to fourth place in the final E3 Harelbeke of his career, but all the spoils went to Kwiatkowski, who took his first win of the season and his first win in Team Sky colours.
E3 Harelbeke 2016 (206km)
1. Michal Kwiatkowski (Pol) Team Sky, in 4-55-18
2. Peter Sagan (Svk) Tinkoff, at 3 secs
3. Ian Stannard (GBr) Team Sky, at 11 secs
4. Fabian Cancellara (Sui) Trek-Segafredo
5. Jasper Stuyven (Bel) Trek-Segafredo
6. Lars Boom (Ned) Astana
7. Tiesj Benoot (Bel) Lotto-Soudal
8. Sep Vanmarcke (Bel) LottoNL-Jumbo
9. Jean-Pierre Drucker (Bel) BMC
10. Daniel Oss (Ita) BMC, all same time