Brock Purdy threw three touchdown passes, two to George Kittle, and the San Francisco 49ers — after building a 20-point lead — held on to defeat the host Seattle Seahawks 36-24 on Thursday.