Kyle Jordan, of Fleetwood, Lancashire, had staked £5 on an accumulator bet in which he not only needed to predict the outcome of six matches, but also for both teams in each to score.
When Everton trailed 2-0 against West Bromwich Albion in the final match, the 30-year-old thought the game was up.
But the Toffeemen recovered to win 3-2 and complete Mr Jordan's 9,172-1 bet.
The oil and gas worker said he could not believe his luck when Everton striker Romelu Lukaku's 84th-minute goal sealed his £45,865 windfall.
He said: "I was watching the game with my mate and my girlfriend and as Everton went 2-0 down, I thought that was it.
"But when the final whistle went we all started jumping around the room."
The victory was made all the sweeter, he said, because he resisted the option to "cash out" on his bet before the final result was in.
Had he done so, he would have had to settle for a £4,100 payout.
Mr Jordan said he wanted to take his partner and two children on holiday to the United States with some of his winnings.
A football fan has won more than £45,000 after Everton's thrilling last-gasp victory at West Brom.