Gutsy Treviso inflicted Cardiff Blues' first Pro12 defeat by an Italian side at Stadio di Monigo.
The match was evenly balanced until the dying stages when the hosts' superior scrum paid dividends.
Star Italy flanker Alessandro Zanni went over for Treviso, whose pack also forced a penalty try while Alberto Di Bernardo kicked 16 points.
Visiting Dafydd Hewitt and Lou Reed touched down and Ceri Sweeney kicked seven points.
Sweeney's early penalty was soon cancelled out as Treviso's direct approach led to outstanding Zanni's opening try, converted by Di Bernardo, who also added a penalty.
And having gone to Italy hoping to play expansively, the Blues found the poor weather conditions against them.
Phil Davies' side had to rethink their approach, leaving them exposed to the hosts renowned forward power.
However, flashes of the tactics that the visitors intended to employ were evident as centre Hewitt was set free by returning Wales Six Nations back-up scrum-half Lloyd Williams.
Sweeney's conversion levelled the scores, but Di Bernardo's second penalty gave Treviso a 13-10 lead at the break.
The Blues' line-out enjoyed a moment to savour when another of Wales' extended Six Nations squad, Reed, latched on to a loose Treviso throw to go over.
But at the other set-piece, the scrum, Treviso's dominance also paid dividends as they forced a penalty try, converted by Di Bernardo.
That came soon after flanker Michael Paterson's sin-binning amid sustained home pressure.
Home fly-half Di Bernardo added another penalty before Adam Jones' Wales tight-head understudy Scott Andrews was also sent to the sin-bin.
Andrews had been on the field since the 41st minute and committed his sin at a ruck.
But his absence was a further blow to the Blues' effort.
And as the pressure mounted, Di Bernardo kicked his final points to deny the Blues a losing bonus point.
Replacement Paul Derbyshire was denied a late try after he was judged to have knocked on in the process of gathering Di Benardo's clever grubber.
The outcome changed nothing in the table as Treviso remained eighth with the Blues a place below.
Treviso: Brendan Williams; Ludovico Nitoglia, Tommaso Iannone, Gideon La Grange, Christian Loamanu; Alberto Di Bernardo, Fabio Semenzato; Alberto De Marchi, Leonardo Ghiraldini (captain), Lorenzo Cittadini, Francesco Minto, Corniel Van Zyl, Dean Budd, Alessandro Zanni, Manoa Vosawai.
Replacements: Giovanni Maistri, Michele Rizzo, Jacobus Roux, Antonio Pavanello, Paul Derbyshire, Simone Favaro, Edoardo Gori, James Ambrosini.
Blues: Jason Tovey; Owen Williams, Gavin Evans, Dafydd Hewitt, Chris Czekaj; Ceri Sweeney, Lloyd Williams; Taufa'ao Filise, Kristian Dacey, Benoit Bourrust, Filo Paulo, James Down, Michael Paterson, Luke Hamilton, Rory Watts-Jones,.
Replacements: Marc Breeze, Sam Hobbs, Scott Andrews, Lou Reed, Thomas Young, Robin Copeland, Lewis Jones, Gareth Davies.
Referee: Giuseppe Vivarini (FIR)
Assistant Referees: Claudio Passacantando, Simone Boaretto (both FIR)
Citing Commissioner: Maurizio Vancini (FIR)
TMO: Mauro Dordolo (FIR)