On a day lacking major shocks, there were wins for Premier League strugglers Leeds, Leicester and Southampton but Fulham were held by Championship team Sunderland.
Erik ten Hag's United took the lead in the 54th minute when Anthony produced a defence-splitting pass to find Brazil teammate Casemiro, who lifted the ball over goalkeeper Joe Lumley.
Four minutes later United were two up, when Casemiro let fly with a stunning strike from outside the box to find the bottom corner.
With the home side infused with confidence, substitute Fred produced an audacious flick from Bruno Fernandes' low cross to the near post.
Reading forward Andy Carroll was shown a second yellow card in the 65th minute but Paul Ince's side still managed to pull one back minutes later when substitute Amadou Mbengue headed home from a corner.
Harry Kane was left on the bench for Spurs' match at Deepdale, meaning he missed out on the chance to become Tottenham's all-time top goalscorer.
In the absence of the England captain, Son stepped up with two fine finishes for a much-needed confidence boost.
The South Korean, who shared the Premier League's Golden Boot last season, had scored just once in his previous 17 appearances for club and country.
But the 30-year-old brought the fourth-round tie to life after a lacklustre first half with a sumptuous curling strike with his left foot and he killed the tie off 21 minutes from time by spinning his marker and firing high past Freddie Woodman.
Arnaut Danjuma then marked his debut for Tottenham with a goal as his scuffed finish from Dejan Kulusevski's cross found the bottom corner.
- Son confidence -
"I needed those goals for my confidence," Son told the BBC.
"It was really important. It was the kind of position I like to shoot. In the first half I had a couple of chances to shoot but the keeper made a good save.
"As a striker or as an attacking player, the important thing is that you get that goal. It's important that I could help the team go to the next round. I'm very, very happy."
Leeds booked their place in the fifth round for the first time since 2016 by beating Accrington Stanley 3-1.
Jack Harrison's stunning long-range strike settled the visitors' nerves against the League One side at the Crown Ground.
Patrick Bamford's brilliant reverse pass teed up Junior Firpo to double the visitors' lead in the 66th minute and Luis Sinisterra tapped home Harrison's cross to end the tie as a contest.
Leicester were made to sweat by fourth-tier Walsall, only to be bailed out by FA Cup specialist Kelechi Iheanacho in a 1-0 win.
The Nigerian has scored more goals in the competition than any other player since making his debut in 2016.
Iheanacho enjoyed a dose of fortune in scoring his 17th goal in 23 FA Cup appearances when his second-half strike from the edge of the box took a wicked deflection.
Full-back Romain Perraud scored twice as Southampton saw off a late rally by Blackpool to progress 2-1.
Fulham were the only Premier League side who failed to win on Saturday after they were held 1-1 by Sunderland at Craven Cottage.
Four other ties will need replays to find a winner, including Championship leaders Burnley's clash with Ipswich after a 0-0 draw at Portman Road.
Manchester City were the first team into round five after they saw off Arsenal 1-0 on Friday in a clash between the top two in the Premier League.
Liverpool travel to Brighton in the pick of Sunday's ties.