How is it possible that a loving God could call for such brutal treatment of the Canaanites. If killing them wasn’t enough, he commanded that they be driven out of their homes and out of their land. Even if we could conclude that such a thing was justified, how does God’s preference for Israel in this matter express any love whatsoever for the Canaanites? In other words, if one could show God is just in his behavior toward Canaan, where was his love? The Christian cliché: “hate the sin but love the sinner” seems to be absent here. Why?
Again, a cursory read hides many things in the text. If one wishes to really know what the text says, one must read it with the intent to know—read all the applications and let the story speak for itself. For example, the very fact that God gave the land to Israel points back to Abraham. God promised the land to Abraham and his descendants in Genesis 12:7 (cf. Genesis 13:15; 17:8). Did God say anything about the Canaanites at that time that would reveal anything about his purpose during the times of Moses and Joshua? Yes, I believe it does.
First of all, the Scripture tells us that God was very patient with the Canaanites, called Amorites in the text (Genesis 15:13-16). Four centuries passed before God submitted to judge Canaan. The text shows that judgment is not a preferred tactic. He did care for the Canaanites and wouldn’t submit to judging them until every means possible was taken to turn them away from their wickedness. To begin with, they had the example of Abraham to show them what sort of behavior God rewarded. Next they had the example of his judgment upon Sodom and the cities in the plane to show them what sort of behavior he hated (cf. 2Peter 2:6). Later, they had the examples of Isaac and Jacob to remind them of righteous behavior, but nothing seemed to be working.
Secondly, God’s promise to Abraham included a promise of blessing for the nations. Not only did God promise blessings for those who blessed Abraham and his children, but he promised an unconditional blessing for the nations in Genesis 18:18 (cf. Genesis 22:18). All nations of the earth (including the Canaanites) would be blessed, simply because Abraham obeyed God. The deed is done—Abraham already obeyed. Therefore, God has promised to bless all nations, including Canaan. After judgment comes reconciliation. Notice:
Zechariah 9:7 And I will take away his blood out of his mouth, and his abominations from between his teeth. But the remnant, even he, shall be for our God. And he shall be as a governor in Judah, and Ekron, like a Jebusite.
After judgment (Zechariah 9:1-6) God will remove his desire to sin (viz. blood and idols) and he will be for God. He will be as a prince of Judah – like a Jebusite (a Canaanite)! God never completely drove out the Canaanites from the land, because Israel’s heart wasn’t in it (cf. Judges 2:1-4). The remaining Canaanites were absorbed into Israel, so to have one’s sin removed was to become as a Jebusite (a Canaanite – cf. Zechariah 9:7). God intends to bless all nations similarly (cf. Psalm 87:4-6; Isaiah 19:23-25), just as he promised Abraham. Therefore, to conclude that God hates the Canaanite simply because he was the recipient of God’s judgment, is to misread the text completely, because after judgment (Zechariah 9:1-6) comes reconciliation (Zechariah 9:7). God loves the Canaanite and has already received him as his own, and continues to do so in the Gospel which has gone out to all nations.
 As I said HERE, this current theme about “making sense of the Old Testament God” is based upon the book: Is God a Moral Monster by Paul Copan. These are my thoughts about his book. He may or may not agree with the impression his book has made upon me, but I thoroughly enjoyed reading what Paul wrote and recommend his book to anyone who is looking for a good read concerning defending our faith.