The Hammers moved up to fifth in the league with a win over the Toffees.
The home side opened the scoring at London Stadium with a wonderful free-kick by Aaron Cresswell.
Dominic Calvert-Lewin hit the angle of the post and the woodwork before Mason Holgate's half-volley made it 2-2.
They were level for five minutes. The rebound fell to the back of the net after Pickford blocked Antonio's shot, and he steered the ball into the unguarded net after recovering from a fractured foot.
Things got worse for the visitors when captain Michael Keane was sent off midway through the half for his second bookable offence, following his second late challenge on Antonio. There was no way back for the visitors after that.
Three points separates the 18th- and 18th-ranked teams in the Premier League. They face a crucial game on Wednesday against 19th-ranked Burnley.
After two losses in their past three matches, West Ham's hopes of automatic qualification for Europe had been dealt a blow.
The Hammers have never played in the European competition and are now three points behind the fourth place team, although they have three games in hand.
This result continues a hugely impressive season for David Moyes' side, who face Lyon in the quarter-finals of the Europa League on Thursday with a potential semi-final opponent if they get there.
They have not won a European trophy since 1965, but if they win that competition they will get a spot in the European League.
At a packed London Stadium, the lead was given by a brilliant free-kick by Cresswell and they had chances to make it 2-0, but Antonio could only shoot into the side-netting from a tight angle.
Those misses looked to have been costly when Holgate, a last-minute addition to theEverton side, superbly controlled a half-volley after Richarlison had nudging the ball into his path.
Antonio broke clear after Alex Iwobi lost possession, and then Bowen followed up for his 13th goal of the season.
The result continued a terrible run of form for Goodison Park. Their total of six points from 14 away games is the lowest from any of the 92 sides in the league.
Their past two away games had seen them lose to Crystal Palace and Spurs by a combined score of four goals.
He will be happy with how they started the second half, but frustrated by the way in which they quickly fell behind again and the dismissal of Keane after he had given Michael Oliver no choice but to send him off with a rash sliding challenge on Antonio.
With 10 games left in the season, there is a battle to keep the streak of playing in the top flight for every season since 1954.
Formation 4-2-3-1.
24Fredericks15Dawson4Zouma3Cresswell20Bowen22Benrahma8FornalsFormation 4-3-3.
2Kenny5Keane22Godfrey19Mykolenko16Doucouré4Holgate17Iwobi11Gray9Calvert-Lewin7RicharlisonThe match ended with West Ham United winning.
The second half ended with West Ham United winning.
An attempt was missed. The centre of the box is too high for Mason Holgate. Following a set piece situation, assisted by Demarai Gray.
The West Ham United player was shown a yellow card for a bad foul.
The West Ham United player was hit by the ball.
Richarlison won a free kick on the right wing.
Kurt Zouma is a player for West Ham United.
Anthony Gordon won a free kick.
An attempt was missed. Vitalii Mykolenko's shot from outside the box is close, but misses to the right. Alexander Iwobi assisted.
Craig Dawson of West Ham United was hit by a ball.
Richarlison won a free kick on the left wing.
Mason Holgate was shown a yellow card for a bad foul.
The defensive half is where the free kick was won by Fornals.
Foul by Mason Holgate.
There is a substitution for West Ham United. Yarmolenko is the new replacement for Saïd Benrahma.
An attempt was missed. The shot from the right side of the box misses to the right. Michail Antonio assisted.
The corner is for West Ham United. They were Conceded by Vitalii Mykolenko.
There is a substitution forEverton. Anthony Gordon takes the place of Dominic Calvert-Lewin.
An attempt was missed. Benrahma's shot from outside the box is close, but misses the right. Michail Antonio assisted.
Jonjoe Kenny had a hand ball.