The 29-year-old from Birmingham was an impressive 6-4 6-3 6-7 (4) 6-4 winner on Court 12.
Evans took advantage of a lacklustre display from Pouille, racing into a two-set lead and a break up in the third.
Frenchman Pouille belatedly found his range and broke Evans twice with the finish line in sight. Evans hit back to level the set but then blew a 3-0 lead in the tie-break.
However, Evans finished the job in the fourth set to set up a third career clash with 20-time grand slam winner Federer.
The world number 58 has yet to take a set off the Swiss star, but he pushed him close in Australia earlier this year.
Zverev wins another marathon
Alexander Zverev came through yet another gruelling five-setter to reach the third round of the US Open.
The sixth seed won a see-saw battle against American Frances Tiafoe 6-3 3-6 6-2 2-6 6-3, two days after going the distance against Radu Albot.
It was the 11th time the 22-year-old German has gone the full five sets in his relatively short career.
"I've been here before," he said afterwards. "It's usually what I do in the first few rounds of a grand slam, play five sets. Maybe it's to entertain the crowd.
"Frances gave me a real fight. I'm just happy to get the win somehow. I know if it goes the distance I am ready.
"I've known Frances since we were little kids, we played each other all through juniors.
"Every match we play is getting tougher and tougher, hopefully that will continue and we will play bigger matches throughout our careers."
David Goffin, the 15th seed from Belgium, beat French qualifier Gregoire Barrere 6-2 6-2 6-2.