The Italians got off to the dream start, opening up a 10-0 lead after Willem De Waal scored a penalty, beforing converting Brendan Williams' try.
Winger Tommaso Ionnone poured more misery on Connacht, scoring a try after 23 minutes to make it 15-0, but the Irish outfit hit back when scrum-half Fabio Semenzato saw yellow.
The hosts pulled themselves back in contention when Dave McSharry crossed for his first Connacht try and Niall O'Connor added the extras to make it 15-7 at the interval.
Treviso flanker Manoa Vosawi was sent to the sin-bin on 57 minutes and O'Connor kicked the resulting penalty and set up a grandstand finish with another well-placed kick.
But despite piling on the pressure in the closing stages, Franco Smith's side dug deep to fend off their advances, leaving Elwood ruing missed opportunites.
"It's hard to take, it was a game we should have won," said Elwood.
"There were a lot of positives, but when it mattered we turned over ball and did not show enough composure."