Fullback Halfpenny missed only one kick in the difficult conditions while centre Jonathan Davies and right wing Alex Cuthbert scored second-half tries.
Italian captain Martin Castrogiovanni, taking over from the suspended Sergio Parisse, was sent to the sin bin in the second half after being shown a yellow card.
Wales now have two wins from three matches while Italy, who upset France in the first round, have lost twice.
- Sports & Recreation
- Sergio Parisse