As long as the transaction is valid (meaning no bad signatures, bad nonce, etc), even if it runs out of gas, the transaction is still completed. Whether or not the transaction has made any state changes is a different story.
What if we say OOG transactions are not valid, and can't be in a valid block, and miners don't get compensated for the work?
Imagine an attacker submitting a bunch of computationally expensive function call transactions, but he makes sure every one of those transactions error out in the end. Miners would run them, waste computing power, not getting anything in return. This is effectively a DOS attack the blockchain.
A few words about internal transactions.
Since contract can call other contracts or send funds, one transaction call may include multiple internal transactions. It is possible recover from OOG of an internal transaction within your transaction.
If you only forward a limited amount of gas to an internal transaction function call, your internal transaction can fail and OOG. But since you still have gas left in your main TX, it can eventually complete.
See does an entire transaction revert when throw occurs