The difference is very clear-cut. You use the preterite for an action that happened at a distinct point in time. So to expand on your examples:
Comí tacos ayer.
I ate tacos yesterday.
Besé a una chica en la fiesta anoche.
I kissed a girl at the party last night.
These were both specific points in time.
The imperfect is used for actions that happened over a period of time, and it is also commonly used in place of estaba + gerund.
So:
Cuando era joven, comía tacos.
When I was young, I would eat tacos. / When I was young, I used to eat tacos.
Besaba a una chica durante la película.
I was kissing a girl during the movie.
Notice my first example; this is a very common pattern in Spanish in which both tenses are used. The imperfect is used for the ongoing action that was occurring when the other one interrupted or occurred. For example,
Lavaba los platos cuando el teléfono sonó.
I was washing the dishes when the phone rang.
And, as mentioned, estaba lavando could also have been used there, but it's common to say it the way I did as well.
Basically, if a distinct point of time is mentioned (ayer is usually distinct, cuando era niño is usually not) and the action was not ongoing in the context of the sentence, use the preterite. Otherwise, use the imperfect. Note that cuando era niño could also require the preterite if you are talking about something that happened once, e.g.
Cuando era niño, fumé una vez con mis amigos.
When I was little, I smoked with my friends one timeonce.