Everyone says winter destroyed Napoleon in Russia. The truth is worse. He had at least three chances to save the campaign, and he walked past every one of them.
Chance one: Vitebsk, late July 1812. He'd crossed the Niemen in June with about 450,000 men and hadn't fought a single major battle. Didn't matter. Heat, bad water, typhus, dysentery and desertion were eating his army alive. Horses were dropping by the thousands. At Vitebsk he told his staff the campaign of 1812 was over and 1813 would finish it. Halt, rebuild the supply lines, winter in friendly territory. It was the right call.
He sat on it for two weeks, got restless, and marched on.
Chance two: the serfs. Russia ran on serfdom, and Napoleon knew a proclamation freeing them could set the countryside on fire behind the Russian army. He'd done this kind of thing all over Europe. He refused. He wanted a negotiated peace with Alexander, not a peasant revolt, and he didn't want to burn the bridge to the Tsar.
So he chased the Russians to Borodino, where the two armies inflicted something like 70,000 casualties in a single day, and then into Moscow in mid September with roughly 100,000 men left.
Chance three: get out. Moscow burned the night he arrived. The Tsar didn't answer his letters. Every week he waited, the season got later and the Russians got stronger. He stayed five weeks.
When he finally left on October 19, he tried to take a southern route through untouched country. The Russians blocked him at Maloyaroslavets, and he turned back onto the same road he'd come in on. The one his own army had already stripped bare.
That's when the cold came. By the time the remnants staggered back across the Niemen in December, a few tens of thousands were still in the ranks.
Winter didn't beat Napoleon. It just collected the bill for decisions he'd made in July.