The sentence is correct in its expression. But, gramatical correction does not affect talking language, since talking is just conveying the message. In your sentence, "he lives (in Osaka)" is a simple present tense infinite is expressed and then if you write a comma, and "for three years", it could be acceptable. But, the said three years is though - last 3 years - questionable. If you want to say that He will live in Osaka for three years - the entire meaning is changed. So, there are 2 choices for you to re-write: 1. He has been living in Osaka for the last three years. (Still he is there, but chances are there to shift if needed) 2. For the last three years he lives in Osaka (still he is there and chance to shift is very less or no decision for any change) "He lives in Osaka for three years." Is this sentence grammatically correct?