The substitute’s intervention extended the hosts’ unbeaten run to five Premier League matches as Fulham were frustrated despite a dominant display.
Alex Iwobi, on his former stomping ground, had put Marco Silva’s team deservedly ahead in the 61st minute.
Fulham were spared by the assistant referee’s offside flag in the first half, when Dominic Calvert-Lewin’s effort was ruled out for offside after Idrissa Gueye had struck the woodwork. But that was the closest Everton came until Beto came up with a close-range header in the fourth minute of stoppage time.
While Fulham sit 10th after stopping the rot following two defeats on the bounce, Everton move up to 15th on nine points.
Fulham failed to make their dominance count for a chance until the 28th minute, when Emile Smith Rowe volleyed over the bar from Raul Jimenez’s header.
Everton came agonisingly close twice in quick succession four minutes later as Gueye thundered a strike against the crossbar from 25 yards out. Calvert-Lewin pounced on the rebound to fire home, but was flagged marginally offside, with VAR confirming the on-field decision.
But Fulham’s breakthrough arrived just after the hour – former Everton playmaker Iwobi benefiting from Smith Rowe’s great run before drilling a low finish into the left-hand corner.
Iwobi was unlucky not to play a part in a Fulham second seven minutes later as he saw a volleyed cross-shot across goal cleared just ahead of the line.
And Fulham’s failure to put the match to bed came back to bite them deep in added time. Iliman Ndiaye played a cross from deep on the left to Ashley Young, who skilfully cushioned the ball back across goal for Beto to head home.
In-form Jimenez proved a persistent threat to the Everton defence, and was unlucky not to register a goal contribution himself.
The visitors’ earliest opportunity came from the Mexican as he got away from his marker after seven minutes to turn and shoot in the box from Kenny Tete’s cross off the right but fired over.
He challenged again on 36 minutes, this time cutting in from the right himself to create the opportunity to shoot. Once more using his strength, he fought his way close to goal but saw his shot with the outside of his boot blocked by Micheal Keane.
There were opportunities for Jimenez to turn provider too, setting up Smith Rowe and Iwobi with chances in the box in the first half. He also showed a great turn of pace to surge on to a ball over the top after the break, but his first touch took it too close to Jordan Pickford.
Jimenez’s tireless running provided the platform for the excellent Iwobi and Smith Rowe to do the damage behind him – the only thing lacking for the Mexican at Goodison was a goal.
Despite their solid form coming into Saturday’s clash, Everton simply could not get going, and it looked like their old boys Iwobi and Silva would be returning to Merseyside to haunt them.
All too often, Everton gave away cheap turnovers in the midfield or failed to execute moves in the final third as Sean Dyche’s men lacked impetus across the field.
Up front, Calvert-Lewin badly needs a goal, and thought he had one until the assistant’s flag went up, but otherwise he struggled to test Fulham’s centre-backs.
Beto’s introduction in place of Calvert-Lewin was not universally welcomed by the Everton fans in the 81st minute, but any dissatisfaction soon turned to jubilation.
Everton’s equaliser came from arguably their best move of the game, and Beto did well to keep his cool when the chance came. Young’s first-time volleyed cross set up the opportunity, but it still needed finishing, and Beto himself missed from point-blank range when these teams met at Craven Cottage last term.
Having been given few opportunities this season, Beto appeared to be in tears at full-time, a sign of how much that goal meant to him.