Select only rows with minimum values from union table SQL Server 2005

Here is a sampling of the data from a union of two tables (named "vProducts_All"):


DBID    UPC             Price1          Price2
1       023614025559    689.0000        649.0000
2       023614025559    632.0000        602.0000
1       011457891333    252.0000        232.0000
2       011457891333    284.0000        254.0000
1       123451234512    199.0000        159.0000
2       123451234512    195.0000        162.0000

I want to return only the rows showing the minimum for Price1 field, IN ADDITION TO all of the other records that didn't have duplication, something like:

DBID    UPC             Price1      Price2
2       023614025559   632.0000     602.0000
1       011457891333    252.0000        232.0000
2       123451234512    195.0000        162.0000
+ All the other records that didn't have duplication in the UPC field


Have tried in vain using joins to derived tables, but nothing works. Any help appreciated
You can treat the union as a subquery. 

SELECT TOP 1 DBID, UPC, Price1, Price2
FROM (SELECT DBID, UPC, Price1, Price2 
    FROM Table1
    UNION 
    SELECT DBID, UPC, Price1, Price2 
    FROM Table2) sub 
ORDER BY Price1 DESC