In the same vein as a previous post on the historic accuracy of the gospels, here’s some rich, theological goodness from Tim Keller about apparent inconsistencies in the Bible, especially those between the Old and New Testaments:
The New Testament explains another change between the testaments. Sins continue to be sins—but the penalties change. In the Old Testament sins like adultery or incest were punishable with civil sanctions like execution. This is because at that time God’s people constituted a nation-state, and so all sins had civil penalties.
But in the New Testament the people of God are an assembly of churches all over the world, living under many different governments. The church is not a civil government, and so sins are dealt with by exhortation and, at worst, exclusion from membership. This is how Paul deals with a case of incest in the Corinthian church (1 Cor. 5:1ff. and 2 Cor. 2:7-11). Why this change? Under Christ, the gospel is not confined to a single nation—it has been released to go into all cultures and peoples.
Once you grant the main premise of the Bible—about the surpassing significance of Christ and his salvation—then all the various parts of the Bible make sense. Because of Christ, the ceremonial law is repealed. Because of Christ, the church is no longer a nation-state imposing civil penalties. It all falls into place. However, if you reject the idea of Christ as Son of God and Savior, then, of course, the Bible is at best a mishmash containing some inspiration and wisdom, but most of it would have to be rejected as foolish or erroneous.