Diaz has scored 20 goals in 37 appearances for club and country this season
Liverpool have signed Colombia winger Luis Diaz from Porto in a deal worth 45m euros (£37.5m), with a further 15m euros (£12.5m) in potential bonuses.
Diaz has signed a contract until 2027 with the Merseyside club.
The 25-year-old had previously been linked with a move to Tottenham, who reportedly had a bid of around £38m rejected.
“I’m very happy to sign for Liverpool,” the international said on Sunday via the club’s official Twitter account.
Diaz requires a work permit and is unlikely to arrive in Liverpool until the end of next week at the earliest.
He has scored 14 goals and provided five assists in 18 league appearances this season for Porto, who are top of Portugal’s Primeira Liga.
Diaz was Liverpool boss Jurgen Klopp’s main target for the summer transfer window, when the asking price would have been closer to £50m but the Reds changed their stance when it became clear the winger could move elsewhere if they did not act.
“I could not be happier that we’ve been able to get this deal done and bring Luis to Liverpool,” Klopp said.
“I have always been a believer in only signing players in January if you would want to sign them in the summer, and that’s very much the case with Luis.
“He is an outstanding player and someone we’ve been tracking for a very long time.
“This team deserved to add quality and when we played against Luis earlier this season, we saw what a danger he is, how fast he is and how his mentality was to help his team.”
Diaz is currently on international duty with Colombia for World Cup qualifying matches.
Liverpool sent a delegation to Argentina – where Colombia play on Tuesday – to conduct a medical so the move could be completed before the January transfer window closed.