I seem to have to figure this out whenever I update OpenVPN so here is what I've discovered on the latest, as of this writing, 2.5.4-I603.
Typically, this problem is resolved using the "block-outside-dns" option forcing all DNS queries through the VPN. In my case, however, I have local Intranet in my home with devices I want to reach, as well, and my VPN DNS knows nothing of them.
My default gateway must remain my local router but my VPN server pushes the VPN network routes to the client so that is not an issue. I only need my VPN DNS to be queried before my ISP DNS so the VPN IP address will be returned for those hosts that have public IP addresses, as well (split-DNS), and those that exist only on the VPN network.
To accomplish this, my OpenVPN interface must have the lowest "Interface Metric," not to be confused with the "Route Metric," which I always do.
You can set the Interface Metric from the command line and here is an excellent example of how to do that.
This can also be done from the OpenVPN client config file:
script-security 2
route-up 'c:\\windows\\system32\\cmd.exe /c netsh interface ipv4 set interface %dev_idx% metric=5'
Unfortunately, even with the latest OpenVPN version, this requires Administrator privileges.