Mason Mount fired Chelsea in front just after 30 minutes in a balanced first half for both teams where he beat Porto keeper Agustín Marchesín with a low line drive at the far post to stake his team to a 1-0 lead at the break.
"There were many moments where we suffered," admitted Tuchel after the match. "But we accepted it, that's the way it is at this stage. The spirit was good and it's an excellent result."
Porto, who knocked Juventus out in the round of 16, were more adventurous than the Premier League side and had triple the amount of shots, going closest with a header from veteran defender Pepe that was beaten away by Chelsea keeper Edouard Mendy, who also repelled an effort from striker Moussa Marega.
However, U.S. international Pulisic hit the bar minutes before Ben Chilwell pounced on a poor trap by Jesus Corona, charged into the box and rounded Marchesin to tap into an empty net for Chelsea's second.
Chelsea kept their third consecutive clean sheet in UCL play with the win, having not allowed a goal in the last 346 minutes of European competition since a 24th minute strike by Krasnodar in the group stage.
"We knew it would be a tough game. We kept going, we got the goal in the first half and the second secured a good win," said Mount. "The job's not done. They'll fight for the next leg and we'll have to give it our all. We'll be ready."
Porto midfielder Mateus Uribe said his side "left with a bitter taste" after playing so well but having failed to take their chances.
"We weren't clinical in front of goal, they had fewer opportunities and scored two goals," he said.
"They got the result, but we leave with our heads held high because of our performance and believe we can turn the tie around with our quality players."
Just like the first leg, the second will be played at Sevilla's Sanchez Pizjuan stadium due to coronavirus restrictions on travel between Portugal and England.